2014-01-14 46 views
4

我使用passportjs進行身份驗證在我的服務器上。我正在使用以下代碼:req對象在passport.authenticate

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

example中的註釋建議您可以傳遞對象{ "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。