如何获得护照上的X-Forwarded-For(IP)标头

时间:2019-05-07 13:41:36

标签: javascript node.js express passport.js passport-local

我有一种验证登录名的方法,我需要将当前的用户访问IP与已注册的用户IP进行比较。

router.post('/login', passport.authenticate('local', {
		successRedirect: '/index',
		failureRedirect: '/login?fail=true'
	})
)

在我的auth.js文件中,我有这个...

const bcrypt = require('bcryptjs')
const LocalStrategy = require('passport-local').Strategy

module.exports = passport => {
  passport.use(
    new LocalStrategy({
      usernameField: 'username',
      passwordField: 'password',
      passReqToCallback: true
    },
    (req, username, password, done) => {
      console.log(req.headers)
      findUser(username, (err, user) => {
        if (err) {
          return done(err)
        }

        if (!user) {
          return done(null, false)
        }

        bcrypt.compare(password, user.password, (err, isValid) => {
          if (err) return done(err)
          if (!isValid) return done(null, false)
          return done(null, user)
        })
       })
      }
    )
  )
}

回调中req上的x-forwarded-for键是undefined,因此我检查了headers,发现x-forwarded-for不存在。 我怎么能得到它?

`

0 个答案:

没有答案