Node.js Passport.js失败消息未出现

Node.js Passport.js失败消息未出现,node.js,authentication,heroku,passport.js,passport-local,Node.js,Authentication,Heroku,Passport.js,Passport Local,我有passport.js身份验证,它接受正确的凭证,而不是不正确的凭证 我正试图为不正确的凭据显示一条弹出消息 尝试了多次尝试,并按照文档进行操作,但无法使其正常工作。 这里面似乎没有太多东西,但却做不好 制定战略 var flash = require('connect-flash'); var app = express(); app.use(flash()); passport.use(new Strategy( function(username, password, cb)

我有passport.js身份验证,它接受正确的凭证,而不是不正确的凭证

我正试图为不正确的凭据显示一条弹出消息

尝试了多次尝试,并按照文档进行操作,但无法使其正常工作。 这里面似乎没有太多东西,但却做不好

制定战略

var flash = require('connect-flash');

var app = express();
app.use(flash());

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, { message: 'Incorrect password.' } ); }
      if (user.password != password) { return cb(null, false, { message: 'Incorrect password.' }); }
      return cb(null, user);
    });
  }));
身份验证-发布和获取

//Log In Post request
app.post('/login.post',
  passport.authenticate('local', { successRedirect: '/home',
                                   failureRedirect: '/',
                                   failureFlash: 'Invalid log in, please try again' })
);


//Home route
app.get('/home', //Log in Home
  function(req, res) {
   res.render('home', { user: req.user });
 });
也许是这样

app.post('/login',
  passport.authenticate('local', { successRedirect: '/home',
                                   failureRedirect: '/login',
                                   failureFlash: true })
);
试试这个:

//登录过程
路由器.post(“/login)”,(请求、回复、下一步)=>{
passport.authenticate(“本地”{
成功重定向:“/”,
failureRedirect:“/auth/login”,
failureFlash:正确
})(req、res、next);
});

调用
(req、res、next)
很重要,否则整个事情都会卡在那里。

愚蠢的问题是
var flash=require(“connect flash”)
,而不仅仅是
require(“flash”)
?是的,我有这个问题,不过谢谢!和一个简单的测试,比如
req.flash(“成功”,“测试样本”)有效?已将其添加到我的应用程序中。get for home(和其他页面)不可用,没有错误但没有通知。请查看此repo以获取LocalStrategy和flash的完整示例