【发布时间】:2015-01-29 19:35:03
【问题描述】:
我发现done() 方法(或success(),由我的调试器告知)还有第三个参数,称为info。谁能告诉我传递给它的值会发生什么?
编辑
我所指的done() 方法是我们必须在策略回调中调用的方法。例如
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);
});
}
));
sn-p 来自here。可以看出,在某些情况下,message 被作为第三个参数传递给对象done()。我们如何在路由方法中访问这个message?
【问题讨论】:
-
请展示一些示例代码或为我们指明正确的方向。这有点模糊。另外,我看到你标记了它,但你的问题从来没有提到护照,所以我花了一段时间才意识到你在问什么。
-
感谢您指出@loganfsmyth!我已经更新了q,如果需要更多解释,请告诉我。
-
你能说明你是如何调用中间件的吗?
标签: node.js passport.js