Passport验证Nodejs的选项

时间:2018-04-12 02:11:22

标签: node.js passport.js

我在Nodejs中使用护照进行身份验证,如下所示:

const passport = require('passport');
passport.use(strategies.jwtLogin); //using require('passport-jwt')  
const requireAuth = passport.authenticate('jwt', {session: false});
app.get('/', requireAuth, (req, res, next) => next());

这很有效。我的问题是:

  1. passport.authetication的第一个参数有哪些不同的选项?我在documentation中没有看到任何'jwt'选项。

  2. 此选项如何影响我传递给passport.use的策略。

  3. 换句话说,如果我将'jwt'选项更改为blah之类的其他内容,我该如何更改策略?

1 个答案:

答案 0 :(得分:1)

authenticate()函数的第一个参数只是在策略中定义的简写名称,用于标识它。因此,如果您打算调用authenticate('blah',...),那么您需要在passport.use()中定义一个策略,其定义名称为“blah”。

如果你看一下你在第31行看到的source code for passport-jwt,就会定义这个简写名称。

this.name = 'jwt';

同样,如果您查看另一个策略,例如passport-local(第53行),您会看到它的简写名称。

this.name = 'local';

这样设置允许您在同一个应用程序中使用多个策略。您可以使用自己的passport.use()语句设置jwt和local,然后使用authenticate('local',...)或authenticate('jwt',...)在代码中稍后单独引用它们。

可以在护照文档中更好地记录,但我希望有所帮助。