了解Passportjs自定义回调

tom*_*456 8 javascript passport.js

我正在尝试使用Passportjs,自定义回调的代码是:

app.get('/login', function(req, res, next) {
  passport.authenticate('local', function(err, user, info) {
    if (err) { return next(err); }
    if (!user) { return res.redirect('/login'); }
    req.logIn(user, function(err) {
      if (err) { return next(err); }
      return res.redirect('/users/' + user.username);
    });
  })(req, res, next);
});
Run Code Online (Sandbox Code Playgroud)

我对所有这些代码感到满意,除了倒数第二行(req, res, next);- 有人可以解释为什么这些参数最后添加.这可能是一个JS问题而不是Passport问题,但是非常感谢任何帮助.

lag*_*lex 5

“javascript”答案是它返回一个函数,该函数使用第二组参数再次调用。

该函数是“链中每个策略的失败累加器”。

https://github.com/jaredhanson/passport/blob/master/lib/middleware/authenticate.js