我已经阅读了几篇关于rest api +单页面应用程序中的授权处理的文章。 他们主要建议如下: 初始化前端应用程序时,检索用户角色并检查客户端角色并根据它应用逻辑,根据角色显示/隐藏特定控件等。
但我没有找到任何关于更复杂的授权逻辑的文章。
例如:有基于角色的访问控制的休息api(我使用Yii2 rbac)。 有前端应用程序(我使用角度)。在此应用中,列出了帖子列表。 因此,基于用户角色,"编辑"对于此列表中的每个帖子,按钮应该可见/隐藏。
有角色:
管理
用户登录用户
旅客
问题是,"编辑"拥有"用户"的用户的权限角色取决于上下文(业务规则) - 如果用户是帖子的作者,他允许编辑帖子,在其他地方禁止。
那么在应用程序前端部分处理此类授权的最佳做法是什么?
当用户执行对休息端点的调用时,为每个实体的操作提供操作权限?