nodejs - 护照完成回拨
问题描述:
我想知道在下面的代码中做过回拨操作。它是从jwt有效载荷中提取消息的方式吗?在这种情况下它会返回user
吗?如果是这样,我怎样才能访问这个返回的用户?它存储在哪里?nodejs - 护照完成回拨
module.exports = function(passport) {
var opts = {};
opts.jwtFromRequest = ExtractJwt.fromAuthHeaderAsBearerToken();
opts.secretOrKey = config.secret;
passport.use(new JwtStrategy(opts, function(jwt_payload, done) {
User.findOne({id: jwt_payload.id}, function(err, user) {
if (err) {
return done(err, false);
}
if (user) {
done(null, user);
} else {
done(null, false);
}
});
}));
};
答
done是策略实现内部调用的方法。
然后它导航你,三种方法之一,成功/错误/失败。
这些选项中的每一个都可能调用next
。
当success
被调用时,它可以将用户连接到请求或做其他事情,这取决于你的需求
阅读下面的链接,一个全面的了解:
https://github.com/jaredhanson/passport-local/blob/master/lib/strategy.js#L80
谢谢@凯文红。但是我怎样才能访问传递给成功的'user'参数? –
我的意思是,你正在使用done(null,user)。这就是所谓的成功方法。一旦成功,您就可以获得用户。在其他情况下,说错误,你传递一个错误的方法。如果它的有用和完整请注册并将此帖标记为完整 –