2017-02-22 2 views
1

こんにちは、私はパスポートローカルを使用するたびに400 Bad Requestのエラーが発生しています。私が何か間違っていることを教えてください。パスポートローカル返信エラー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

確かに言うが、私は10回のうちに9回と言うだろうHTTP Bad Requestthis rowから来て、passport-localになる。要求には資格​​情報が含まれていません。これらのオプションは、ミドルウェアによってnot supportedある

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

はどうやらあなたはこれを定義したときに資格情報を含むフィールドがemailpasswordであることを伝えることを試みました。代わりに、

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

を渡す必要があります。

もう1つの一般的な理由は、body-parserを使用していないか、郵便配達所から送信しているリクエストでデータと一致する正しいヘッダーが定義されていないことです。