【问题标题】:Get User Roles in Angular Application在 Angular 应用程序中获取用户角色
【发布时间】:2018-10-08 04:14:10
【问题描述】:

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

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 条件

【问题讨论】:

    标签: angular typescript asp.net-web-api angular2-routing angular5


    【解决方案1】:
    canActivate(route: ActivatedRouteSnapshot) {
      console.log(route.data);
    }
    

    使用路由:ActivatedRouteSnapshot 可以解决你的问题:

    【讨论】:

      猜你喜欢
      • 2015-05-14
      • 2018-11-06
      • 2018-02-28
      • 1970-01-01
      • 1970-01-01
      • 2022-09-29
      • 2013-08-21
      • 2011-07-07
      • 2016-12-03
      相关资源
      最近更新 更多