尝试获取用户角色时的角色未定义

时间:2018-11-17 11:00:36

标签: angular6 role-base-authorization

我正在尝试在我的有角度的应用程序中获取用户角色,但无法正常工作: 这是我的Routes.ts中的代码:

 {path: 'adminpanel', component : AdminPanelComponent, canActivate : [AuthGuard], data : {roles : ['Admin']}},

在我的auth.guard.ts中:

export class AuthGuard implements CanActivate {
  constructor(private router : Router, private userService : UserService){}
  canActivate(
    next: ActivatedRouteSnapshot,
    state: RouterStateSnapshot): boolean {
      if(localStorage.getItem('userToken') != null)
      {
        let roles = next.data["roles"] as Array<string>;
        if(roles){
          var match = this.userService.roleMatch(roles);
          if(match) return true;
          else{
            this.router.navigate(['/forbidden']);
            return false;
          }
          this.router.navigate(['/login']);
          return false;
        }
      }
      this.router.navigate(['/login']);
      return false;
  }

这里的问题是,我总是(未定义)(next.data [“ roles”]作为数组)获得未定义的条件,所以我的条件无法正常运行。 请问有什么可以帮忙的。我正在使用Angular6

0 个答案:

没有答案