本文介绍了Passport本地返回错误400邮递员的错误请求的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
您好,我每次使用本地护照时都收到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.'}); } adminModelparePassword(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邮递员的错误请求
发布评论