FailureFlash with Passportjs and Express

FailureFlash with Passportjs and Express

本文关键字:Express and Passportjs with FailureFlash      更新时间:2023-09-26

我试图在登录失败时闪光错误消息(ExpressJS 4.2和PassportJS)

我的代码是:

//Admin Route =====

router.get('/admin', function(req, res) {
    res.render('admin', {message: '', user: ''});
});
router.post('/admin', passport.authenticate('loginAdmin',{  successRedirect: '/panel',
                                                failureRedirect: '/admin',
                                                failureFlash: true })
);

//护照本地策略=====

passport.use('loginAdmin', new LocalStrategy(
  function(username, password, done) {

    modeloUsuario.findOne({ nombre: username, password: password }, function(err, user) {

      if (err) { return done(err); }
      if (!user) {
        return done(null, false, {message: 'Incorrect username.'}); //Error to show
      }

      return done(null, user);
    });
  }
));

但是/admin的get请求中的"message"永远不会被"Incorrect username "取代。我说错了吗?提前感谢!

看起来您正在重定向回/admin,并且在/admin路由处理程序中您将消息设置为空字符串。您的管理路由处理程序在您的护照策略后触发,因此您正在清除那里的消息。