我有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 });
});
router.post('/login', passport.authenticate('local', { successRedirect: '/', failureRedirect: '/auth/login', failureFlash: true }));
- ADAMJR