Angular在路由基于角色的授权中分配2个角色



我正在创建一个平均堆栈应用程序,我想在一些路由模块中添加基于角色的授权,我设法做到了,但我无法在一个授权中分配多个角色这是m has角色保护:

canActivate(
route: ActivatedRouteSnapshot,
state: RouterStateSnapshot): Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | boolean | UrlTree {
const isAuthorized= this.user.role.includes(route.data.role);
if (!isAuthorized){
window.alert('ALERT : you are not authorized !!')
}
return isAuthorized;

}

这是组件代码中的代码:

{
path: 'listuser',
component: ListUsersComponent,
canActivate:[HasRoleGuard],
data:{
role:"Admin"
}

}

我想添加两个角色管理员和经理我试过

data:{
role:["Admin"||"Manager"]
}

但它不起作用

首先你应该这样做:

data:{
roles:["Admin", "Manager"]
}

然后你必须这样检查:

const intersectedRoles = this.user.role.filter(value => route.data.roles.includes(value));
const isAuthorized= intersectedRoles.length? true : false;

最新更新