req对象在passport.authenticate

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

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地址,并检查最终的攻击。

示例中的注释表明您可以传递一个对象{ "passReqToCallback": true }以使reqcallback在callback函数中可用。 哪些可以被访问为

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

所以初始化passport.use为

 passport.use(new BearerStrategy({ "passReqToCallback": true }, function(req, token, done) { }); 

你应该在callback中要求。