在 Angular 2/4 应用程序上对用户进行身份验证后的动态角色和权限

Posted

技术标签:

【中文标题】在 Angular 2/4 应用程序上对用户进行身份验证后的动态角色和权限【英文标题】:Dynamic Roles and permissions after authentication the user on angular 2/4 application 【发布时间】:2018-06-07 05:32:10 【问题描述】:

我正在创建一个 angular 2/4 的应用程序,我的超级管理员将在其中创建不同的租户/角色并授予对不同页面/功能(权限)的访问权限,因此这两件事都是动态的。

我可以检索页面并将它们显示在菜单上。 使用这篇文章实现了菜单: https://webcake.co/automating-your-main-nav-in-a-modular-angular-2-app/

现在我还想保护路由,这样用户就不会通过手动输入 URL 来访问该功能。

需要更多说明如何制作从数据库获取的动态路线或导航。

有没有办法使用动态角色名称和动态功能权限进行基于角色的授权?

任何人都可以帮助解决这个问题。

【问题讨论】:

【参考方案1】:

我有点晚了,但如果您对 JWT 感到满意,this particular guide 帮助我解决了一些问题。它的要点是您必须在从服务器登录时发送用户的角色/权限。你的 Angular 应用程序应该在本地存储这个“元数据”(比如说,localstorage)并用它来保护你的路线。 Angular Guards 可以轻松地保护您的路线。

但请记住,到目前为止,这只能保护您。任何人都可以编辑他们的localstorage(或sessionstorage或cookies),因此您的API端点本身必须得到适当的保护,这样即使未经授权的用户以某种方式访问​​您受保护的Angular路由,他/她也会被拒绝通过 API。

【讨论】:

以上是关于在 Angular 2/4 应用程序上对用户进行身份验证后的动态角色和权限的主要内容,如果未能解决你的问题,请参考以下文章

如何检测选择标签(Angular 2)上对 ngModel 的更改?

如何使用 j_security_check 在 React.JS 应用程序上对用户进行身份验证

在 Angular 2/4/6 应用程序中管理状态的最佳实践

在 Qt 服务器上对用户进行身份验证

带有 Angular 6 的 Asp.Net Core 2.1 中的 Windows 身份验证 - Chrome 连续登录提示

调用 Azure Functions 的静态 Angular 应用程序。是安全问题吗?