gpt4 book ai didi

node.js - Nodejs 的 Passport 身份验证选项

转载 作者:太空宇宙 更新时间:2023-11-03 22:08:20 24 4
gpt4 key购买 nike

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

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 的策略。

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

最佳答案

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

如果你看source code for passport-jwt您将在第 31 行看到这个简写名称已定义。

this.name = 'jwt';

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

this.name = 'local';

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

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

关于node.js - Nodejs 的 Passport 身份验证选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49786918/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com