【发布时间】:2020-12-17 14:38:51
【问题描述】:
我一直在研究Passport configure documention-
var passport = require('passport')
, LocalStrategy = require('passport-local').Strategy;
passport.use(new LocalStrategy(
function(username, password, done) {
User.findOne({ username: username }, function (err, user) {
if (err) { return done(err); }
if (!user) {
return done(null, false, { message: 'Incorrect username.' });
}
if (!user.validPassword(password)) {
return done(null, false, { message: 'Incorrect password.' });
}
return done(null, user);
});
}
));
根据文档,如果凭据有效,则验证回调 function(username, password, done){...} 调用 done 以向经过身份验证的用户提供 Passport。由于done 也是回调函数,我希望它的函数体作为验证回调的参数传入。在Express 4.x Passport example 中,代码类似,只是done 被称为cb。能够更改其名称有什么好处?在这两种情况下,我都找不到回调的主体,所以我认为它是 Passport 的一部分 - 这是正确的吗?该文档提供了如何调用Done 的示例,但我找不到它的API 调用签名。在第一个示例中,返回调用 Done 的结果(例如 return done(null, user);)但我们如何知道 Done 实际返回什么?
【问题讨论】:
标签: node.js express callback passport.js