护照js本地策略自定义callback显示用户为false和信息为“缺less凭据”

我正在使用Node.js,angularjs,快递和护照。 我尝试了所有我能想到的选项,但仍然没有解决scheme。 找不到来自其他post的解决scheme。

app.post('/login', function(req, res, next) { console.log(req.body.Email); console.log(req.body.Password); passport.authenticate('local', function(err, user, info) { console.log(err,user,info); ... 

在上面的req.body中显示正确的控制台,但在通行证validation显示空,虚假和信息作为缺less凭据。

我已经使用以下通行端口

 passport.use(new LocalStrategy({ usernameField: 'Email' }, (Email, Password, done) => { console.log(Email, Password, done); User.findOne({ Email: Email.toLowerCase() }, (err, user) => { console.log(err); if (err) { return done(err); } if (!user) { return done(null, false, { msg: `Email ${Email} not found.` }); } user.ComparePassword(Password, (err, isMatch) => { if (err) { return done(err); } if (isMatch) { return done(null, user); } return done(null, false, { msg: 'Invalid email or password.' }); }); }); })); passport.serializeUser((user, done) => { // console.log(user, done); done(null, user.id); }); passport.deserializeUser((id, done) => { User.findById(id, (err, user) => { done(err, user); }); }); 

我不明白为什么存在这个问题。

有人知道我在这里失踪吗?!?!

谢谢!

使用{ usernameField: 'email' }不是{ usernameField: 'Email' }因为您发送req.body.email而不是req.body.Email

添加upto kaxi答案我已经通过在护照本地策略中添encryption码字段来解决此错误,如下所示

  passport.use(new LocalStrategy({ usernameField: 'Email',passwordField: 'Password' }, (Email, Password, done) 

代替

passport.use(new LocalStrategy({ usernameField: 'Email' }, (Email, Password, done)