我想知道在以下代码中回调做了什么。是从jwt有效负载中提取消息的方法吗?在这种情况下它会返回user
吗?如果是这样,我该如何访问此返回的用户?它存放在哪里?
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);
}
});
}));
};
答案 0 :(得分:1)
done是策略实现内部调用的方法。
然后它导航到三种方法之一,成功/错误/失败。
这些选项中的每一个都可能会调用next
。
调用success
时,它可以将用户附加到请求或执行其他操作,具体取决于您的需求
阅读以下链接以获得完整的理解:
https://github.com/jaredhanson/passport-local/blob/master/lib/strategy.js#L80