所以,我知道 REST 后端中的资源有多安全,这不是问题所在。我遇到的问题是如何在 REST API 和客户端应用程序/前端管理用户/权限管理?
考虑以下示例,我的 API 中有资源订单和发票,我的前端应用程序中也有路由订单、发票和仪表板,这些都是用 angular/react 编写的,为了简单起见,我们应该调用这些页面。我可以针对端点和动词将每个角色/用户的权限存储在数据库中,这很好但是我如何在前端管理相同的事情?在示例中,发票、订单和仪表板可能会以某种方式使用这两种资源,因此这不是一对一的关系,并且从用户的角度来看,他似乎拥有页面上的权限。我如何维持这种关系?
我是否应该通过将这些前端模块/页面/路由映射到 REST 端点来将这些前端模块/页面/路由存储在后端,但是这种方法是否违反了单一责任原则并阻碍了新客户端应用程序的适应和可扩展性?如果不应该对端点、用户可以在 JWT 中访问的动词进行编码,并让客户端应用程序使用客户端端点和页面之间的某种映射来决定如何处理它,但是在这种情况下,我将增加当我的端点增加时,JWT 的大小呈指数增长?
在我的情况下,我的情况甚至更棘手,因为前端应用程序还负责为用户分配权限。将其视为一个工作流引擎或权限管理,其中管理员用户定义角色并授予不同页面的权限(从用户的角度来看)。
谁能告诉我实现此类功能的最佳实践。在没有休息和像 JSF/ASP.NET 这样的 Web 应用程序的过去,我没有遇到过这样的问题,因为我只有一个位置来维护权利,但基于 REST 的应用程序会改变这些规则。