快速连接闪存4&护照

时间:2014-05-21 16:45:01

标签: node.js flash express passport.js

我有一个非常简单的节点网站,我正在尝试使用connect-flash。我无法让flash数据全部工作

在我的应用中,我将其用于配置

app.use(cookieParser(config.secret));
app.use(session({ secret: config.secret, name: 'sid', cookie: { secure: true }}));
app.use(flash());

和我的登录路线

app.post('/login',
    passport.authenticate('local', { 
        successRedirect: '/',
        failureRedirect: '/login',
        failureFlash: true,
        failureFlash: 'Invalid username or password.'
    });
);

我的登录路线。

app.get('/login', function (req, res) {
    res.locals.errors = req.flash();
    console.log(res.locals.errors);
    res.render('login', { 
        errors: res.locals.errors
    });
});

应用程序本身运行良好,会话正在成功进行身份验证。但永远不会设置闪存数据,总是一个空对象。我甚至尝试过使用一条路由来设置闪存数据和重定向,重定向路由只是为了控制台记录flash消息。但这也是做同样的事情。

我是否需要使用会话存储(mongo或redis),还是应该使用内置内存会话?

2 个答案:

答案 0 :(得分:0)

它实际上对我来说似乎不是一个中间件问题。您确定在尝试检索闪存消息之前是否存储了闪存消息?

尝试执行req.flash('info', 'Flash is back!')之类的操作,然后通过console.log(req.flash('info'))

写出来

答案 1 :(得分:-3)

中间件的排序是个问题。