当我在Node.js + Express中使用护照进行用户身份验证时会发生奇怪的事情

时间:2019-03-24 17:34:00

标签: javascript node.js express passport.js

在一开始,我使用此代码定义LocalStrategy

    passport.use(
        'local-login',
        new LocalStrategy({
            usernameField:'username',
            passwordField: 'password',
            passReqtoCallback: true
        },
            function(req,username,password,done){
            ....

然后,护照无法正常工作。它以用户名的身份读取密码,并且无法从HTML表单中读取用户名。

我很困惑,然后下载了其他人的源代码并将其应用于我的代码。 实际上,我只是将上面部分更改为:

 passport.use(
  'local-login',
  new LocalStrategy({
   usernameField: 'username',
   passwordField: 'password',
   passReqToCallback: true
  },
 function(req,username,password,done){
            ....

它就起作用了!!!!

实际上,我认为这两个代码只是缩进不同,所以我的原始错误是什么?有人可以告诉我,谢谢!

(为了更加清晰,我从IDE上传屏幕截图)

这是错误的代码。 This is Buggy Code

这是运行良好的代码。 Good Code

1 个答案:

答案 0 :(得分:1)

您拥有原始代码

passport.use(
  'local-login',
  new LocalStrategy({
    ...
    passReqtoCallback: true // misspelled!
  }),
  ...
)

代替

passport.use(
  'local-login',
  new LocalStrategy({
    ...
    passReqToCallback: true
  }),
  ...
)