Passport身份验证中的req对象

4

我在我的服务器上使用passportjs进行身份验证。我正在使用以下代码:

exports.auth = function(req, res, next){
  passport.authenticate('bearer', { session: false })(req, res, next);
};

passport.use(new BearerStrategy(
  function(token, done) {
    User.findOne({ token: token }, function (err, user) {
      if (err) { return done(err); }
      if (!user) {
        return done(null, false);
      }
      return done(null, user, { scope: 'read' });
    });
  }
));

有没有一种方法可以在passport.use中访问req对象?这样我就可以获取用户的IP地址并检查是否存在攻击。
1个回答

2

示例中的注释表明,您可以传递一个对象{ "passReqToCallback": true },以使req回调在回调函数中可用。可以通过以下方式访问:

function(req, token, done){//rest of the function body}

因此,将passport.use初始化为

passport.use(new BearerStrategy({ "passReqToCallback": true },

 function(req, token, done) {
  });  

你应该在回调函数中包含req参数。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接