10

ユーザーを認証するためにパスポートローカル戦略を使用しています。Jared Hansonのガイドに従い、reqオブジェクトにflashメソッドを与えるためにconnect-flashをインストールしました。したがって、私のリクエストハンドラの1つは次のとおりです。

 app.post('/login',                             
      passport.authenticate('local', {           
          successRedirect: '/'                   
        , failureRedirect: '/login'              
        , successFlash: 'Bienvenido'             
        , failureFlash: 'Credenciales no válidas'                             
      })                                         
  );   

ユーザーログインが失敗すると、ユーザーは再び/ loginにリダイレクトされますが、何もフラッシュされません:/

更新:セッションストレージにmongodbを使用していますが、次のように表示されます。

> db.sessions.find()
{ "_id" : "qZ2eiTnx6r9LR25JOz/TGhiJ", "session" : "{\"cookie\":{\"originalMaxAge\":null,\"expires\":null,\"httpOnly\":true,\"path\":\"/\"},\"passport\":{\"user\":\"4ffb5b5db9cc16b615000001\"},\"flash\":{\"error\":[\"Credenciales no válidas\"],\"success\":[\"Bienvenido\"]}}" }

したがって、メッセージはセッションオブジェクトに挿入されますが、引き出されません。私は何か特別なことをすべきですか?

4

1 に答える 1

24

メッセージを引き出してビューにレンダリングしていると思いますか?何かのようなもの:

app.get('/login', function(req, res){
  res.render('login', { message: req.flash('error') });
});
于 2012-07-09T23:08:44.127 に答える