在PassportJS / ExpressJS中获取IP

时间:2013-07-26 00:40:40

标签: node.js express passport.js

我在ExpressJS网络应用程序中使用PassportJS。

在app.js中:

//passportjs google
passport.use(new GoogleStrategy({
    clientID: '...',
    clientSecret: '...',
    callbackURL: '...'
  }, user.oauth2Login
));

app.get('/auth/google',
  passport.authenticate('google', { scope: 'email' }));

app.get('/auth/google/callback', 
    passport.authenticate('google', { successReturnToOrRedirect: '/home', failureRedirect: '/login' }))

在我的用户模块中:

exports.oauth2Login = function(accessToken, refreshToken, profile, done) {
    //get ip here
}

如何在oauth2Login中获取用户的IP?

1 个答案:

答案 0 :(得分:3)

使用passReqToCallback选项。详情请见:

http://passportjs.org/guide/authorize/

(我知道这是本文档的一个非显而易见的位置。)