【问题标题】:Flash messages passport-local-mongoose闪信护照-本地-猫鼬
【发布时间】:2016-08-26 15:44:50
【问题描述】:

我在尝试找出从哪里获取 Flash 消息时遇到了麻烦

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,但我还没有看到使用第一个的教程。

【问题讨论】:

    标签: node.js mongoose passport-local


    【解决方案1】:

    想出了如何处理 Flash 消息。看起来应该这样做。

    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.' }
    }));
    

    【讨论】:

    • 我知道我会在 3 年零 8 个月后来到这里,但你绝对是传奇。我一直在尝试寻找 Flash 消息的解决方案,以便与 passport-local-mongoose 一起工作 2 天,直到我终于找到了您的解决方案。感谢您最终自己找到解决方案。我不敢相信仍然只有一个赞成票(不包括我的)。使用 Passport-Local-Mongoose 的人肯定不多 :)
    猜你喜欢
    • 2021-10-24
    • 1970-01-01
    • 2016-10-19
    • 2019-10-05
    • 2018-07-31
    • 2016-06-21
    • 1970-01-01
    • 2017-04-02
    • 1970-01-01
    相关资源
    最近更新 更多