angularjs – Passport js本地策略自定义回调将用户显示为false,将信息显示为“Missing credentials”

前端之家收集整理的这篇文章主要介绍了angularjs – Passport js本地策略自定义回调将用户显示为false,将信息显示为“Missing credentials”前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我使用的是Node.js,angularjs,express和passport.我已经尝试了所有我能想到的选择,但仍然没有解决方案.无法从其他帖子中找到此问题的解决方案.
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,info);
...

在上面的req.body在控制台中显示正确,但在护照身份验证中它显示null,false和info作为缺少的凭据.

我已将以下内容用于传递端口

passport.use(new LocalStrategy({ usernameField: 'Email' },(Email,Password,done) => {
console.log(Email,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,isMatch) => {
        if (err) { return done(err); }
        if (isMatch) {
            return done(null,user);
        }
        return done(null,{ msg: 'Invalid email or password.' });
    });
});
}));


passport.serializeUser((user,done) => {
   // console.log(user,done);
    done(null,user.id);
});

passport.deserializeUser((id,done) => {
    User.findById(id,user) => {
        done(err,user);
    });
});

我无法理解为什么问题存在.

有人知道我在这里缺少什么吗?!?!

谢谢!

使用{usernameField:’email’}而不是{usernameField:’Email’},因为你发送的是req.body.email而不是req.body.Email

猜你在找的Angularjs相关文章