【问题标题】:nodejs + passport + express 3.0 + connect-flash no flashing?nodejs + passport + express 3.0 + connect-flash 不闪烁?
【发布时间】:2012-07-09 08:35:11
【问题描述】:

我正在使用本地护照策略来验证用户身份。我按照 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\"]}}" }

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

【问题讨论】:

    标签: node.js express connect passport.js


    【解决方案1】:

    我假设您将消息拉出并在视图中呈现它们?比如:

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

    【讨论】:

    • 好的!我真的错过了这个......我觉得很愚蠢!谢谢贾里德!
    • @Jared 我也陷入了这个问题。我认为这对护照文档中的这个示例非常有帮助。
    • 是的,我也是。我认为在文档中有这个会很好。
    • 是的,我们不应该最终解决这个问题。特别是 connect-flash 键是“错误”这一事实非常有用。
    猜你喜欢
    • 2019-08-13
    • 1970-01-01
    • 2011-01-04
    • 2011-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-17
    相关资源
    最近更新 更多