繁体   English   中英

获取Angular应用程序中的用户角色

[英]Get User Roles in Angular Application

我想在有角度的应用程序中获得用户角色,但在我的情况下,它的工作代码不起作用

export const appRoutes: Routes [{path:'home',component:HomeComponentcanActivate: [AuthGuard] }, { path: 'admin',component: AdminPanelComponent, canActivate: [AuthGuard], data: {roles: ['SuperAdmin']}},

我想获得管理员角色,因为其他用户将无法访问管理员组件,这是我的身份验证保护代码

canActivate(
next: ActivatedRouteSnapshot,
state: RouterStateSnapshot): boolean {
if (sessionStorage.getItem('userToken') != null) {
  debugger
  let roles = next.data['roles'] as Array<string>;
  console.log(next.data['roles']);
  if (roles) {
    var match = this.userService.roleMatch(roles);
    if (match) {
      return true;
    } else {
      this.router.navigate(['/forbiden']);
    }
  }
} else {
  this.router.navigate(['/signin']);
  return false;
}}

其给定角色未定义不会进入IF条件

canActivate(route: ActivatedRouteSnapshot) {
  console.log(route.data);
}

使用路线:ActivatedRouteSnapshot可以解决您的问题:

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM