nodejs + passport + express 3.0 + connect-flash没有闪烁?

时间:2012-07-09 21:41:25

标签: node.js express connect passport.js

我正在使用护照本地策略来验证用户身份。我按照Jared Hanson给出的指南安装了connect-flash,以便为req对象提供flash方法。所以我的一个请求处理程序如下:

 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\"]}}" }

因此消息被插入到会话对象中但不会被拉出。我应该做些什么特别的事吗?

1 个答案:

答案 0 :(得分:24)

我假设您将消息拉出并在视图中呈现它们?类似的东西:

app.get('/login', function(req, res){
  res.render('login', { message: req.flash('error') });
});