如何在护照js中添加登录错误flash消息

时间:2017-12-03 05:54:16

标签: javascript flash

我希望在我的登录表单中显示一条Flash消息,那就是当用户在表单中提供了错误的凭据时,但我不知道在哪里添加闪存有点困惑。周围的人请帮忙。

app.post('/login',passport.authenticate("local", {
successRedirect: "/",
failureRedirect: "/login"
}), function(req, res){
req.flash('error', err.message)
})

我仍然希望它从表单中显示错误。我是新来的  帮助

req.flash('error', err.message)

3 个答案:

答案 0 :(得分:0)

您应该将消息设置为res.locals,如此

req.flash('error', 'This is an error message');
res.locals.message = req.flash();

然后你可以在你的html中显示它们

<div class="error-message">
    <strong> <%=message.message%> </strong>
</div>

我希望它会对你有所帮助。

答案 1 :(得分:0)

在服务器端使用此代码:

    var passport = require('passport');    
    var flash = require('connect-flash');
    app.use(flash());
    app.use(function(req, res, next) {
        res.locals.success_msg = req.flash('success_msg');
        res.locals.error_msg = req.flash('error_msg');
        res.locals.error = req.flash('error');
        next();
    });

您可以在passport.js中添加要弹出的消息:

req.flash('error_msg', 'That email is already taken.');
req.flash('success_msg', 'This is successfull');

并在您的前端代码中(根据您的语言。我使用把手进行前端模板化)显示您的提醒消息:

    {{#if success_msg}}
        <div class="alert alert-success">{{success_msg}}</div>
    {{/if}}
    {{#if error_msg}}
        <div class="alert alert-danger">{{error_msg}}</div>
    {{/if}}
    {{#if error}}
        <div class="alert alert-danger">{{error}}</div>
    {{/if}}

答案 2 :(得分:0)

在登录时,您需要在failureFlash:true中编码,并将其设置为true

app.use(function(req,res,next){
    res.locals.error = req.flash("error");
    res.locals.success = req.flash("success")
    next();
})

app.post("/dashlogin", passport.authenticate("local", {
    successRedirect: "/dashboard",
    failureRedirect: "/dashboard/login",
    failureFlash: true,
}),  function(req,res){

})

然后在页面中将其闪现给用户

<% if(error && error.length > 0) { %>
    <div class="alert alert-danger" role="alert">
        <div class="container">
            <%= error %>
        </div>
    </div>
<% } %>