Node.js 显示带有passportjs的错误消息而不显示flash消息
我使用passport本地策略进行身份验证,并在其中向用户返回一个json web令牌。因为它现在是基于令牌的身份验证,所以我不能使用会话。起初,我使用connect flash获取并显示错误消息,但当我使其无会话时,尝试使用flash消息时出现错误。它说:req.flash()需要会话。如何在不使用flash消息的情况下获取和显示错误消息?请帮忙Node.js 显示带有passportjs的错误消息而不显示flash消息,node.js,passport.js,Node.js,Passport.js,我使用passport本地策略进行身份验证,并在其中向用户返回一个json web令牌。因为它现在是基于令牌的身份验证,所以我不能使用会话。起初,我使用connect flash获取并显示错误消息,但当我使其无会话时,尝试使用flash消息时出现错误。它说:req.flash()需要会话。如何在不使用flash消息的情况下获取和显示错误消息?请帮忙 passport.use('login', new LocalStrategy({ passwordField : 'email',
passport.use('login', new LocalStrategy({
passwordField : 'email',
passReqToCallback : true
},
function(req, username, email, done) {
// check in mongo if a user with username exists or not
User.findOne({ 'username' : username },
function(err, user) {
// In case of any error, return using the done method
if (err)
return done(err);
// Username does not exist, log the error and redirect back
if (!user){
console.log('User Not Found with username '+username);
return done(null, false, {message : 'user not found'});
}
// User exists but wrong password, log the error
if (!isValidPassword(user, email)){
console.log('Invalid Password');
return done(null, false, {message : 'Invalid password'}); // redirect back to login page
}
// User and password both match, return user from done method
// which will be treated like success
var token = jwt.sign(user, 'secret');
req.token = token;
return done(null, user);
}
);
})
);
var isValidPassword = function(user, email){
return bCrypt.compareSync(email, user.email);
}
路线:
router.get('/login', (req, res) => {
console.log(req.message);
res.render('login');
});
router.post('/signup', passport.authenticate('signup', { successRedirect: '/login',
failureRedirect: '/signup'}));
router.post('/login', function(req, res, next) {
passport.authenticate('login', {session : false}, function(err, user, info) {
if (err) { return next(err); }
if (!user) { return res.redirect('/login'); }
// if everything goes right return the token!
res.json({
success : 'true',
message : 'here is your token',
token : req.token
})
})(req、res、next);
});