即时消息护照本地猫鼬

Flash messages passport-local-mongoose

我无法找到从何处获取即显消息

router.get('/login', function(req, res) {
    res.render('login', { 
        user : req.user,
        failureMessage : req.flash('fail')
    });
});

router.post('/login', passport.authenticate('local', {
    successRedirect : '/dashboard',
    failureRedirect : '/login',
    failureFlash : true,
}), function(req, res) {
    // none of this will run right?
});

我正在渲染一个登录页面,当用户提交数据时,它会转到 passport.authenticate 中间件,它会处理剩下的事情,而不会转到额外的回调,所以我怎样才能得到 flash 消息所以我可以在重定向回 /login 页面时显示它?

另一个问题是我是否应该做

passport.use(User.createStrategy());

passport.use(new LocalStrategy(User.authenticate()));

文档告诉我使用第一个:https://github.com/saintedlama/passport-local-mongoose#simplified-passportpassport-local-configuration但我还没有看到使用第一个的教程。

弄清楚了如何处理即显消息。看起来应该这样做。

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

router.post('/login', passport.authenticate('local', {
    successRedirect : '/dashboard',
    failureRedirect : '/login',
    failureFlash : { type: 'error', message: 'Invalid username or password.' }
}));