Node.js Passport.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)
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的完整示例