首页 > 解决方案 > Nodejs Passport 失败消息不起作用

问题描述

我有 Passport Local 在我的应用程序上工作。

成功带来了身份验证,而失败则没有。然而,我试图通过失败消息和逃避动作让它更好地失败。

尝试按照护照文件。

错误消息由于某种原因没有出现,希望得到一些帮助!

这是当地的策略

// Configure the local strategy for use by Passport.
passport.use(new Strategy(
  function(username, password, cb) {
    db.users.findByUsername(username, function(err, user) {
      if (err) { return cb(err); }
      if (!user) { return cb(null, false,req.flash('message','Invalid username or password')); }
      if (user.password != password) { return cb(null, false,req.flash('message','Invalid username or password')); }
      return cb(null, user);
    });
  }));

认证

//Home
app.post('/home.ejs',
  passport.authenticate('local'),
  function(req, res) {
    res.redirect('/');
  });

如果这更准确但也没有运气,我还会再次尝试进行身份验证

  //Home
  app.post('/home.ejs', function( req, res, next) { passport.authenticate('local', function(err, user, info) {

            if (err) { return next(err);  req.flash('message','Invalid username or password') }

            if (!user) { return res.redirect('/');  failureFlash: 'Invalid username or password' }

            req.logIn(user, function(err) {
            if (err) { return next(err); }
              return res.redirect('/');

        });
      })(req, res, next);
    });*/

标签: javascriptjavanode.jsauthenticationpassport.js

解决方案


它应该是

passport.use(new LocalStrategy ...

而不是你的

passport.use(new Strategy(.....

推荐阅读