node.js - 在 PassportJS/ExpressJS 中获取 IP

标签 node.js express passport.js

我在 ExpressJS Web 应用程序中使用 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?

最佳答案

使用passReqToCallback选项。详细信息可以在这里找到:

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

(据我所知,这是本文档的一个不明显的位置。)

关于node.js - 在 PassportJS/ExpressJS 中获取 IP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17871096/

相关文章:

javascript - 如何在保护 api key 的同时使用 javascript api?

javascript - 如何在 Mongoose 中添加集合?

amazon-s3 - 以不区分大小写的方式从 s3 访问图像

node.js - “需要登录”错误。使用 Google API 获取 oauth2 token 后如何登录

Node.js:将 mocha 与 passport.socketio 一起使用时共享 session cookie

node.js - Node js,将pdfkit管道传输到内存流

javascript - 当我们使用 join 方法时,根据根表的 id 进行排序

node.js - 如何一起使用express.json和express.raw?

node.js - 在 mongoose 结果上使用 lodash cloneDeep() - 无法更新生成的 JSON

node.js - 如何将附加参数传递给 passport.authenticate