我每次使用本地护照时都会收到400 Bad Request错误。请告诉我我做错了什么。
我正在尝试使用邮递员调用我的/登录路线,但每次我收到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);
});
答案 0 :(得分:3)
根据您的说法,我们无法确定,但我会说,HTTP Bad Request
中的九个来自passport-local
中的this row,即。请求不包含凭据。
显然,当您定义了以下内容时,您已尝试告知包含凭据的字段为email
和password
:
{
email:'email',
password:'password'
}
中间件的这些选项为not supported。你应该通过
{
usernameField: 'email',
passwordField: 'password'
}
代替。
另一个常见原因是没有使用body-parser
,或者您从Postman发送的请求未定义与数据匹配的正确标头。