首页 > 解决方案 > Angular 客户端应该将用户角色存储在本地存储中吗?

问题描述

在我的 Angular 应用程序中,基于登录的用户,我想通过显示/隐藏不同的菜单项或允许/禁止某些路线来授予或限制功能。目前在成功登录时,我的 .NET Core API 返回一个 JWT 令牌以及用户的角色并将其存储在本地存储中。然后我用它来显示我的菜单(例如)。我只是怀疑这是最佳实践,因为它暴露了我的用户角色,我不确定如果有人在本地存储中手动更改它会发生什么。

在此处输入图像描述

有没有更好/更安全的方法来实现这一目标?

如果您需要更多详细信息,请告诉我。谢谢

标签: angular.net-corelocal-storageroles

解决方案


您不能手动更改您的 JWT 令牌,因为它是使用私钥(或密钥)生成的。如果没有私钥,您将无法创建具有更新角色的新令牌。所以用户无法做到这一点。他当然可以解码令牌,但他不能编码有效的新令牌


推荐阅读