angular - 如何在角度 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 令牌并从客户端访问它?
解决方案
首先,我不建议根据角色编写代码。因为角色是动态的,所以可以在运行时添加角色,而在开发时无法知道角色名称。有一个例外:静态角色在开发时是已知的。但是,我建议尽可能使用权限系统。
在当前设计中,客户端无法访问角色。但是,我认为没有任何充分的理由不将它们添加到当前用户。如果您在 GitHub 存储库上创建问题,我们可以添加它。
JWT 令牌存储在本地存储中(据我所知 - 我不是在开发 Angular 方面)。如果您访问它(access_token
),您可以提取其中的角色。当我将它粘贴到https://jwt.io/时,我可以看到角色名称,所以应该可以。
推荐阅读
- c++11 - 壳牌返回-1073741819
- twilio - 通过 API 触发 Twilio
- python - 如何使用 plotly 在 barplot 中添加注释?
- html - 如何为小屏幕和全屏尺寸调整图像尺寸?
- ms-access - 按 ID 对多级分组访问报告进行排序
- crash - llvm-link 上的 SIGSEGV
- docker - Docker:无法使用 VictoriaMetrics“vmagent”抓取 SonarQube,连接被拒绝
- python - 将鼠标悬停在输入框或图像上时,如何使消息出现在鼠标旁边?
- reactjs - pages.map 不是 gatsby nodejs 中使用 axios 获取数据的函数
- python - Selenium 脚本手动工作,但在启动时不工作