0

我想在凭据错误的情况下为用户显示错误消息。我怎么能在 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);
    });

这有什么问题?

谢谢,

4

1 回答 1

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)
}
于 2012-04-27T21:49:32.913 回答