首页 > 解决方案 > 如何在角度 UI 中访问 CurrentUser 的角色?使用 Abp v2.9

问题描述

目前我正在使用 ABP 2.9 版(DonetCore、Angular、Mongo)项目模板。

我需要有一个逻辑来根据用户角色将用户重定向到不同的路径。

我从源[here]看到的是 CurrentUser 对象,但它没有角色属性。

export interface CurrentUser {
isAuthenticated: boolean;
id: string;
tenantId: string;
userName: string;
email: string;
}

也许当前用户没有包含“角色”是有原因的?

有没有办法使用任何服务或状态来获取用户角色?

另外如何将角色作为额外文件添加到 jwt 令牌并从客户端访问它?

标签: angularasp.net-core-3.0abp

解决方案


首先,我不建议根据角色编写代码。因为角色是动态的,所以可以在运行时添加角色,而在开发时无法知道角色名称。有一个例外:静态角色在开发时是已知的。但是,我建议尽可能使用权限系统

在当前设计中,客户端无法访问角色。但是,我认为没有任何充分的理由不将它们添加到当前用户。如果您在 GitHub 存储库上创建问题,我们可以添加它。

JWT 令牌存储在本地存储中(据我所知 - 我不是在开发 Angular 方面)。如果您访问它(access_token),您可以提取其中的角色。当我将它粘贴到https://jwt.io/时,我可以看到角色名称,所以应该可以。


推荐阅读