我应该如何处理 Rest 中的权限 API
How Should I Handle permissions in a Rest API
假设我有一个 API 团队。连接到这些团队的是用户和其他资源,例如时间表。
在数据库中我们有两个用户。
- 用户 1 是团队 1 和 3 的成员
- 用户 2 是团队 2 的成员
您将如何处理权限以确保只有用户 1 可以访问团队 1 和 3 而不是团队 2 的资源?
每次用户想要访问团队资源时查询数据库并检查是否允许这样做感觉是个坏主意,对吧?一定有更好的做事方式。
我的第一个想法是将用户所属的所有团队放在令牌内的声明中。
这样我就可以读取令牌,检查特定团队的声明是否存在,如果存在,则意味着允许用户访问该资源。
但我最近读到这不是 Claims 的目的。
It feels like a bad idea to query the database every time a user wants to access a team resource and check if it's allowed to do so, right? There must be a better way of doing things.
如果您担心在数据库上执行的查询量,请使用缓存。
在你做之前,我还是先推荐你数量'too many times'。我们进行大量查询,并在有 objective 理由时进行优化。
假设我有一个 API 团队。连接到这些团队的是用户和其他资源,例如时间表。
在数据库中我们有两个用户。
- 用户 1 是团队 1 和 3 的成员
- 用户 2 是团队 2 的成员
您将如何处理权限以确保只有用户 1 可以访问团队 1 和 3 而不是团队 2 的资源?
每次用户想要访问团队资源时查询数据库并检查是否允许这样做感觉是个坏主意,对吧?一定有更好的做事方式。
我的第一个想法是将用户所属的所有团队放在令牌内的声明中。
这样我就可以读取令牌,检查特定团队的声明是否存在,如果存在,则意味着允许用户访问该资源。
但我最近读到这不是 Claims 的目的。
It feels like a bad idea to query the database every time a user wants to access a team resource and check if it's allowed to do so, right? There must be a better way of doing things.
如果您担心在数据库上执行的查询量,请使用缓存。
在你做之前,我还是先推荐你数量'too many times'。我们进行大量查询,并在有 objective 理由时进行优化。