Angular 从 JWT 获取 Spring 个角色
Angular Get Spring Roles from JWT
我的 REST 后端(使用 Spring 构建)中有两个角色:
ROLE_USER,ROLE_ADMIN
当我登录时,REST API returns 一个有效的令牌。然后我像这样将它设置在本地存储中:
localStorage.setItem('currentUser', JSON.stringify({username: username, token: token}));
当我需要它时,我会这样得到它:
localStorage.getItem('currentUser');
到目前为止一切顺利。当我获得我的令牌时,我如何获得有效负载和其中的声明?
如果你是管理员,我想显示管理面板。
jwtHelper.decodeToken($scope.jwt)
见https://github.com/auth0/angular-jwt and https://github.com/auth0/angular2-jwt
很难根据令牌识别用户角色,最好添加一个新标志,如 IS_ROLE_USER、IS_ROLE_ADMIN,并根据该标志检查当前用户角色。或者使用 spring 引导安全性。说不定对你有帮助。
其他答案涵盖了您问题的 spring 部分,因此我将重点回答 angular 部分。
您可以使用指令 show/hide 管理面板,如下所示:
<admin-component *ngIf="user.isAdmin"></admin-component>
我的 REST 后端(使用 Spring 构建)中有两个角色:
ROLE_USER,ROLE_ADMIN
当我登录时,REST API returns 一个有效的令牌。然后我像这样将它设置在本地存储中:
localStorage.setItem('currentUser', JSON.stringify({username: username, token: token}));
当我需要它时,我会这样得到它:
localStorage.getItem('currentUser');
到目前为止一切顺利。当我获得我的令牌时,我如何获得有效负载和其中的声明?
如果你是管理员,我想显示管理面板。
jwtHelper.decodeToken($scope.jwt)
见https://github.com/auth0/angular-jwt and https://github.com/auth0/angular2-jwt
很难根据令牌识别用户角色,最好添加一个新标志,如 IS_ROLE_USER、IS_ROLE_ADMIN,并根据该标志检查当前用户角色。或者使用 spring 引导安全性。说不定对你有帮助。
其他答案涵盖了您问题的 spring 部分,因此我将重点回答 angular 部分。
您可以使用指令 show/hide 管理面板,如下所示:
<admin-component *ngIf="user.isAdmin"></admin-component>