让我们采用一个抽象域,用户可以在其中创建组、邀请其他用户并在这些组内分配权限。
从原理上看,它看起来像这样
[
{
"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"] }
]
}我还期望在不注销用户的情况下动态更新用户权限。
对如何正确地做这件事有什么建议吗?
发布于 2021-12-10 14:39:20
如果您的授权规则(角色)变得复杂,那么考虑使用基于声明的授权方法是明智的。
我认为这个问题是一个很好的起点:
https://stackoverflow.com/questions/70304284
复制相似问题