我已經安裝了passport
和passport-http
。 我想讓我的NodeJS應用程序允許基本身份驗證,使用快遞。PassportJS使用BasicStrategy產生500次故障
我已經定義了用於測試目的以下驗證功能accessControl/users
:
var auth=function(user, callback){
console.log("Checking Credentials for "+user)
if (user === 'chuck') {
var userObj = { name:'chuck' };
userObj.validPassword = function(password) {
return (password === 'testa');
}
callback(null, userObj);
}
}
這是我的快遞路線:
var express = require('express');
var users = require('../accessControl/users');
var passport = require('passport')
, BasicStrategy = require('passport-http').BasicStrategy;
var router = express.Router();
passport.use(new BasicStrategy(
function(username, password, done) {
users.auth({ username: username }, function (err, user) {
if (err) { return done(err); }
if (!user) { return done(null, false); }
if (!user.validPassword(password)) { return done(null, false); }
return done(null, user);
});
}
));
router.get('/test',
passport.authenticate('basic',{session:true}),
function(req, res){
//TODO
res.render('index');
});
訪問/test
第一給了我一個瀏覽器登錄提示。 輸入chuck作爲用戶名和testa作爲密碼重定向到我的500錯誤頁面,儘管文件index.ejs存在於我的視圖文件夾中,並且在註釋掉passport.authenticate行時發送。 試圖通過app.js記錄產生的錯誤給了我{}
。
編輯: 我與
DEBUG=my-app node ./bin/www
運行終端
EDIT2裏面的應用程序:
我得到以下輸出:
my-app Express server listening on port 3000
GET /test 401 18,4333 ms --
GET /test 500 29,882 ms -- 1905
我假設第一個代碼片段駐留在'accessControl/users.js'並通過module.exports導出? –
另外,重新記錄錯誤,你從哪裏運行應用程序?如果一個終端,你應該在那裏看到錯誤輸出。 –
感謝這些提示。我編輯了這個問題。不幸的是,沒有輸出在與失敗相關的shell上完成。 – nesreka