passportjs自定义回调代码流程

时间:2016-08-07 15:59:21

标签: javascript node.js 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);
});

有人可以向我解释这段代码的流程吗?以及(req, res, next);在passport.authenticate函数的最后做了什么?

我已经阅读了this问题,但仍然没有得到它。

1 个答案:

答案 0 :(得分:0)

passport.authenticate()(<args>);

passport.authenticate()返回一个可以有三个参数的函数(reqresnext)。您要问的代码/参数是传递给passport.authenticate()返回的函数的这些参数。检查authenticate.js code on GitHub

但是,我不太清楚护照对字符串local的作用。我想知道:

  1. 传递local字符串足以让Passport了解内容 申请认证机制?
  2. 在遇到使用local策略后,护照会做什么(以及如何做)?