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 に答える