【发布时间】:2018-04-18 19:35:01
【问题描述】:
我正在使用 nodejs v8.7.0 开发一个后端, 对于使用护照和本地护照的身份验证,我之前使用过这个并且一切顺利,但现在我不知道是什么问题,这是我的代码:
我的策略:
var passport = require('passport')
var LocalStrategy = require('passport-local').Strategy
passport.use('local', new LocalStrategy({
usernameField: 'email'
},
function (email, password, done) {
User.findOne({
email: email,
is_admin: false
}, function (err, user) {
if (err) {
return done(err)
}
// Return if user not found in database
if (!user) {
return done(null, false, {
message: 'User not found'
})
}
// Return if password is wrong
if (!user.validPassword(password)) {
return done(null, false, {
message: 'Password is wrong'
})
}
// If credentials are correct, return the user object
return done(null, user)
})
}
))
这里是调用发生的地方:
router.post('/login', (req, res) => {
try {
passport.authenticate('local', function (err, user, info) {
console.log('here xx')
var token;
if (err) {
console.log(err);
return res.status(401).json(err);
}
// If a user is found
if (user) {
console.log('here')
token = user.generateJwt();
return res.status(200).json({
"token": token
});
} else {
// If user is not found
res.status(401).json(info);
}
})
} catch (reason) {
res.status(501).json({
message: reason.message
})
}
})
问题是我没有得到任何像来自 console.log 的消息或任何类似错误的东西,它没有执行来自 passport.authenticate 的回调....顺便说一句,注册新用户等一切都运行良好 有人可以帮忙吗?
【问题讨论】:
标签: javascript node.js express passport.js