【发布时间】:2021-08-23 10:41:09
【问题描述】:
我需要为用户角色为1 or 2 的用户访问UserComponent。它在 AppRoutingModule 代码中显示为 (data : [1,2]})。
从CanActivateGuard 服务我想如何执行此检查以允许具有UserRole 1 或2 的用户。目前我的代码为this.jwtHelperService.decodeToken("").role === router.data。但。我需要检查是否允许两个 UserRoles(1 和 2)。
AppRoutingModule
const routes: Routes = [
...
{path:"user" , component:UserComponent, canActivate:[CanActivateGuard], data : [1,2]},
...
];
CanActivateGuard
canActivate(router : ActivatedRouteSnapshot) :boolean
{
var token = localStorage.getItem("token") ? localStorage.getItem("token"): null;
if ( this.jwtHelperService.decodeToken("token").role === router.data )
{
return true;
}
}
【问题讨论】: