【问题标题】:nodejs - passport done call backnodejs - 护照完成回调
【发布时间】:2018-03-15 17:08:03
【问题描述】:

我想知道完成回调在以下代码中做了什么。这是从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);
      }
    });
  }));
};

【问题讨论】:

    标签: node.js jwt passport.js


    【解决方案1】:

    done 是策略实现在内部调用的方法。

    然后它会将您导航到三种方法之一,成功/错误/失败

    每个选项都可以调用next

    success被调用时,它可以将用户附加到请求或做其他事情,这取决于你的需要

    阅读以下链接以获得完整的理解:

    https://github.com/jaredhanson/passport-local/blob/master/lib/strategy.js#L80

    【讨论】:

    • 谢谢@Kevin RED。但是如何访问传递给成功的 user 参数?
    • 我的意思是,你正在使用 done(null,user)。那就是被调用的成功方法。一旦成功,您就会获得用户。在其他情况下,比如说错误,您传入的是一个错误的方法。如果它有用且完整,请点赞并将此帖子标记为完整
    猜你喜欢
    • 2020-09-21
    • 2012-09-13
    • 2023-04-06
    • 1970-01-01
    • 1970-01-01
    • 2017-10-05
    • 2016-03-18
    • 2018-10-14
    • 1970-01-01
    相关资源
    最近更新 更多