我已经安装了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