Node.js passport本地策略没有被调用
这是我的路线处理程序:Node.js passport本地策略没有被调用,node.js,express,passport.js,Node.js,Express,Passport.js,这是我的路线处理程序: exports.login = function(req, res, next) { if (!req.body.username || !req.body.password) next(); passport.authenticate('local'); }; 我知道当我提交登录表单时会执行此操作,req.body.username和req.body.password包含值-ExpressBodyParser正在执行它的操作(我在那里设
exports.login = function(req, res, next) {
if (!req.body.username || !req.body.password)
next();
passport.authenticate('local');
};
我知道当我提交登录表单时会执行此操作,req.body.username
和req.body.password
包含值-ExpressBodyParser正在执行它的操作(我在那里设置了一个断点)
以下是我的本地策略:
passport.use(new LocalStrategy(
function(username, password, done) {
console.log('local strategy called with: %s', username);
var User = bsHelper.getModelFromResource('users');
User.findOne({ where: {
email_text: username,
password_hash: password
} })
.then(
function (user) {
if (!user) {
return done(null, false, { message: 'Incorrect email.' });
}
return done(null, user);
},
function(err) {
return done(err);
}
);
}
));
verify回调顶部的语句未记录到控制台
我不知道还要测试什么。我已尝试升级到passport的最新版本…当您执行passport.authenticate('local')时,它实际上返回一个express router回调样式的函数。因此,您可以调用该函数或在路由器回调中传递该函数:
exports.login = passport.authenticate('local')
或
exports.login = function(req, res, next) {
if (!req.body.username || !req.body.password)
next();
passport.authenticate('local')(req, res, next) ;
};