【发布时间】:2015-01-08 02:05:27
【问题描述】:
我正在对 REST 调用中的用户进行身份验证,并按照文档中的说明实现自定义回调。
app.get('/login', function(req, res, next) {
passport.authenticate('local', function(err, user, info) {
//.. do something with user here and send a response
})(req, res, next);
});
现在,如果策略中的某些验证失败,我想传递一个错误。
passport.use(new BasicStrategy(
function(email, password, callback) {
User.findOne({
email: email
}, function(err, user) {
if (err) {
return callback(err);
}
if (!user) {
return callback(new Error('User unknown'), false);
}
// Make sure the password is correct
user.verifyPassword(password, function(err, isMatch) {
if (err) {
return callback(err);
}
// Password did not match
if (!isMatch) {
return callback(new Error('Password mismatch'), false);
}
// Success
return callback(null, user);
});
});
}
但错误从未传递给authenticate中的回调:
function(err, user, info) {
// err is always null
}
如何传递错误,以便向用户提供更详细的反馈?
【问题讨论】:
标签: node.js express passport.js