Passport本地返回错误400邮递员的错误请求 [英] Passport local returns error 400 bad request with postman
本文介绍了Passport本地返回错误400邮递员的错误请求的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我尝试使用邮递员呼叫我的/登录路由,但每次都收到400错误请求的错误
下面是我的代码:
passport.use(new LocalStrategy(
{
email:'email',
password:'password'
},
function(email, password, done){
adminModel.getAdmin(email, function(err, admin){
if(err){ return done(err);}
if(!admin){
return done(null, false, {message: 'Invalid Username.'});
}
adminModel.comparePassword(password, admin.password, function(err, isMatch){
if(err){return done(err);}
if(isMatch){
return done(null, admin);
}else{
return done(null, false, {message: 'Invalid Password'});
}
})
});
}
));
passport.serializeUser(function(admin, done){
done(null, admin._id);
});
passport.deserializeUser(function(id, done){
adminModel.findById(id,function(err, admin){
done(err, admin);
});
});
router.post('/login', passport.authenticate('local'),function(req, res){
res.send(req.body);
});
推荐答案
从您给出的内容中不可能肯定地说,但是我会说十有八九HTTP Bad Request
来自passport-local
中的this row,也就是说,HTTP Bad Request
来自passport-local
中的this row。该请求不包含凭据。
显然,当您定义了以下内容时,您试图告诉包含凭据的字段是email
和password
:
{
email:'email',
password:'password'
}
这些选项由中间件not supported提供。您应该通过
{
usernameField: 'email',
passwordField: 'password'
}
改为。
另一个常见原因是没有使用body-parser
,或者您从Postman发送的请求没有定义与数据匹配的正确标头。
这篇关于Passport本地返回错误400邮递员的错误请求的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文