2017-02-22 63 views
1

嗨,我收到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.'}); 
     } 
     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); 
}); 

回答

1

從你給予它什麼不可能肯定地說,但我會說十次中有九次HTTP Bad Request來自this row in passport-local,即。該請求不包含憑據。

顯然,你試圖告訴含憑證的字段爲emailpassword當你定義的:

{ 
    email:'email', 
    password:'password' 
} 

這些選項not supported由中間件。您應該通過

{ 
    usernameField: 'email', 
    passwordField: 'password' 
} 

改爲。

另一個常見原因是沒有使用body-parser,或者您從Postman發送的請求未定義正確的標頭以匹配數據。

相關問題