我在管理用户帐户单次登录时遇到问题,该帐户具有对每个公司的不同权限的多个公司的多重访问权限。
应用程序我正在尝试使用Angular 2作为前端框架,使用Asp Net Core作为具有安全令牌提供程序的后端。通常每个用户都属于一个公司,但是现在我需要处理一个用户可以属于具有不同权限的多个公司而无需从一个用户注销再登录到另一个公司的问题。最好的解决方案是Token拥有所有用户公司以及每个公司的所有权限(使其保持不变)。
这是第一个解决方案,我试图与所有用户公司一起使用Token,并且在后端很难管理其权限,因为我不想在每个操作方法中对其进行编码,而是在操作过滤器中对其进行处理。在获得每个公司的所有权限之前,将很容易处理对所有领域和操作的访问。
第二个解决方案可以是仅具有用户ID的令牌,并且每次用户进行请求后端时,都会先检查数据库中的权限,然后返回资源/句柄操作或返回“禁止”状态代码。在前端,还需要检查数据库是否有权使用操作按钮或移至资源列表。
到目前为止,我还没有实践这两种解决方案,并且无法判断一种方法是否比另一种更好。如果有人可以帮助我选择或提供更好的解决方案,请与我分享您的想法。