如何管理相对于组的用户权限?
Posted
技术标签:
【中文标题】如何管理相对于组的用户权限?【英文标题】:How to manage user permissions relative to a group? 【发布时间】:2022-01-15 03:10:56 【问题描述】:让我们使用一个抽象域,用户可以在其中创建组、邀请其他用户并在这些组中分配权限。
示意图如下所示
[
"groupId": 1,
"name": "Group 1",
"users": [
"id": 1, "name": "User 1", "permissions": ["A", "B", "C"] , // same
"id": 2, "name": "User 2", "permissions": ["A", "B"]
"id": 3, "name": "User 3", "permissions": ["C"]
]
,
"groupId": 2,
"name": "Group 2",
"users": [
"id": 4, "name": "User 4", "permissions": ["A", "B", "C"] ,
"id": 5, "name": "User 5", "permissions": ["A", "B"]
"id": 1, "name": "User 1", "permissions": ["C"] // same
]
]
应用中有 5 个用户(从 1 到 5)。每个用户在他们的组(A、B、C)中都有权限。
问题是:在网络客户端的哪里存储这个权限?
我使用 React.js + Node.js 并通过 JWT 管理我的身份验证。是否可以在用户的 JWT 中有一个对象来存储每个组的权限。像这样的
假 JWT
"userId": 1,
"groups": [
"groupId": 1, "permissions": ["A", "B", "C"] ,
"groupId": 2, "permissions": ["C"]
]
我还希望在不注销用户的情况下即时更新用户权限
有什么正确的建议吗?
【问题讨论】:
【参考方案1】:如果您的授权规则(角色)变得复杂,那么明智的做法是考虑使用基于声明的授权方法。
我认为这个 SO 问题是一个很好的起点:
Role Based Authorization vs. Claim Based Authorization【讨论】:
感谢您的建议。更清楚地说,我想知道我的具体案例的实现细节,而不是一般方法。以上是关于如何管理相对于组的用户权限?的主要内容,如果未能解决你的问题,请参考以下文章