angularjs – Passport js本地策略自定义回调将用户显示为false,
发布时间:2020-12-17 07:36:11 所属栏目:安全 来源:网络整理
导读:我使用的是Node.js,angularjs,express和passport.我已经尝试了所有我能想到的选择,但仍然没有解决方案.无法从其他帖子中找到此问题的解决方案. app.post('/login',function(req,res,next) {console.log(req.body.Email);console.log(req.body.Password);pass
我使用的是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
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |