我想在凭据错误的情况下为用户显示错误消息。我怎么能在Express JS中这样做?我尝试了以下代码,但它不起作用:
app.get('/', function(req, res, next) {
passport.authenticate('local', function(err, user, info) {
if (err) { return next(err) }
if (!user) { return res.send($( "<div class='ui-loader ui-overlay-shadow ui-body-e ui-corner-all'><h1>YOUR MESSAGE</h1></div>" )
.css({ "display": "block", "opacity": 0.96, "top": $(window).scrollTop() + 100 })
.appendTo( $.mobile.pageContainer )
.delay( 800 )
.fadeOut( 400, function() {
$( this ).remove();
})
); }
req.logIn(user, function(err) {
if (err) { return next(err); }
return res.redirect('/account');
});
})(req, res, next);
});
这有什么问题?
谢谢,
答案 0 :(得分:0)
错误消息是否来自策略的验证回调?像这样:
// verify callback
return done(null, false, { message: 'Invalid password' });
如果是这种情况,它将最终作为上述代码段的info
参数:
passport.authenticate('local', function(err, user, info) {
// arguments to this callback are what was given to done()
// info.message => 'Invalid password'
var msg = "<h1>" + info.message + "<h1>"
res.send(msg)
}