1

POST呼び出すエンドポイントpassport.authenticateに到達しても、応答がなく、サーバーも で定義された戦略に進みませんpassport.use。Heroku でエラー H12 (タイムアウト) が発生し、ローカルでブラウザーが「データが受信されませんでした」と応答します。

この問題があるコードでGitHub にチェックインしました

これはデータベースの問題ではありません。 aconsole.logは の前に呼び出され.findOneますが、そのメッセージはログに記録されません。で止まるようpassport.authenticateです。なんで?

何が起きてる?診断するために他にできることはありますか?

4

3 に答える 3

2

ミドルウェアpassport.authenticate(…)スタイルの関数を返します。

間違った方法で呼び出して、応答チェーンを壊しました。私のsite.jsモジュールでexports.loginは、の結果に設定する必要がありpassport.authenticate(…)、それを呼び出すべきではありません。

exports.login = passport.authenticate('local', {
  successRedirect: '/result',
  failureRedirect: '/login'
});
于 2012-11-01T01:24:59.140 に答える
0

app.js の38 行目を次のいずれかに変更してみてください。

User.findOne({ id: id }, ...)

また

User.findById(id, ...)
于 2012-11-01T00:44:44.380 に答える