获取 Angular 应用程序中的用户角色
Get User Roles in Angular Application
我想在 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 条件
canActivate(route: ActivatedRouteSnapshot) {
console.log(route.data);
}
使用路由:ActivatedRouteSnapshot 可以解决你的问题:
我想在 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 条件
canActivate(route: ActivatedRouteSnapshot) {
console.log(route.data);
}
使用路由:ActivatedRouteSnapshot 可以解决你的问题: