在nodejs,express和jwt中为相同的路由添加多个授权

Posted

技术标签:

【中文标题】在nodejs,express和jwt中为相同的路由添加多个授权【英文标题】:Adding multiple Authorization to the same routes in nodejs, express and jwt 【发布时间】:2020-01-19 18:57:26 【问题描述】:

我对 nodejs/express 还很陌生,我在单独的集合中创建了两种不同的用户类型。 我想知道是否有一种方法可以使用 jwt 在 nodejs express 中为同一路由器方法添加多个授权。 这样我就可以做这样的事情了

Router.get('/', [Auth1, Auth2], (req, res) => 
  res.send('hello world');
)

对于相同的路由,基本上不同的授权用户。

提前致谢。

【问题讨论】:

【参考方案1】:

在这种情况下,如果通过了 Auth1 和 Auth2,那么只有我们会得到 'hello world'。

如果有 2 种不同类型的用户,我建议使用类似的东西,

Router.get('/', authenticateUser([user1, user2]), (req, res) => 
  res.send('hello world');
)

并在“authenticateUser”中间件中添加您的用户身份验证逻辑。

如果您使用的是 JWT,那么您只需使用范围声明对其进行身份验证。

【讨论】:

以上是关于在nodejs,express和jwt中为相同的路由添加多个授权的主要内容,如果未能解决你的问题,请参考以下文章

在 Rest API 中使用 Facebook 在 Express 和 NodeJS 中维护 JWT 的密钥和访问令牌

JWT nodejs / express - 无效签名

在 Express JS 和 NodeJS 中为 jsonp 回调函数添加参数

express-jwt-authz 和打字稿

当用户在nodeJS / Express和Angular中空闲一段时间(基于令牌的授权)时,我如何使我的JWT令牌过期

如何在 MongoDB 中为 NodeJS Express 应用程序存储站点配置?