使用 JWT (Node.js + mongoose) 在 REST API 中管理用户权限的最佳方法

Posted

技术标签:

【中文标题】使用 JWT (Node.js + mongoose) 在 REST API 中管理用户权限的最佳方法【英文标题】:Best way to manage user permissions in a REST API using JWT (Node.js + mongoose) 【发布时间】:2019-06-27 13:25:48 【问题描述】:

我是 mongoose 和 mongoDB 的新手,我想知道避免用户在登录后修改其他用户信息的最佳方法。

我使用 JWT 实现了身份验证系统,因此路由受到保护,但任何用户都可以编辑/删除其他用户的信息。

如果您需要更多详细信息,请告诉我。 提前致谢。

【问题讨论】:

【参考方案1】:

颁发 JWT 令牌的授权服务器可以将用户权利/授权/权限放在 JWT 的“aud”声明中。然后,您的 API 可以访问“aud”声明以找出用户访问并根据该声明发送适当的响应。根据 API 响应,UI 可以启用或禁用、隐藏或取消隐藏相应的 UI 组件。

参考RFC 7519中JWT的“aud”声明详情。

【讨论】:

以上是关于使用 JWT (Node.js + mongoose) 在 REST API 中管理用户权限的最佳方法的主要内容,如果未能解决你的问题,请参考以下文章

Node.js:签名验证(PS256)在 Node.js 中成功,但在 jwt.io 调试器中失败

Node.js - JWT、API:如何实现多个 Passport.js 身份验证中间件?

JWT 从 node.js 更新有效负载

无法在 Node JS 中使用 JWT 访问受保护的路由

为啥使用 JWT 而不是在 DB 中存储令牌来授权 Node.js 中的访问令牌?

在 node.js 中生成的 JWT(JSON Web Token) 未在 java 中验证