как добавить флеш сообщение об ошибке логина в паспорт js

1

Я хочу отобразить флэш-сообщение в моей форме регистрации, то есть когда пользователь дает неправильные учетные данные в форме, но я не знаю, где добавить флэш, немного запутался. кто-нибудь вокруг поможет вам.

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

я все равно хотел бы, чтобы он отображал ошибку из формы. я новичок в этой помощи

req.flash('error', err.message)
Теги:
flash

3 ответа

1

Используйте этот код на стороне сервера:

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

и в вашем интерфейсном коде (в соответствии с вашим языком. Я использую дескрипторы для шаблонов front-end tempating) отображают ваши предупреждающие сообщения:

    {{#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}}
  • 0
    настроить его не проблема, но добавив его в сообщение для входа @HOTAM SINGH
0

в логине вам нужно ввести код в failFlash: 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>
<% } %>
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>

Надеюсь, это поможет вам.

  • 0
    Я знаю, как его настроить, но я в замешательстве добавляю его в логин перед тем, как перенаправить обратно, чтобы на флэш-дисплее отображалось @Nikunj Sardhara

Ещё вопросы

Сообщество Overcoder
Наверх
Меню