Вот фрагмент моего ролевого стража:
public canActivate(
route: ActivatedRouteSnapshot,
state: RouterStateSnapshot
): Observable<boolean> {
const roles: UserRoles[] = route.data['roles'];
return this.authenticationService.currentPrincipal.pipe(take(1), map((user) => {
// console.log(roles);
return roles.every((val) => user.roles.includes(val));
}));
}
Итак, вы можете видеть, что моя аутентификация пользователя получает и устанавливает роли currentUser.
Когда пользователь создается, егоPrinciple
роли устанавливаются в зависимости от типа пользователя.(они могут быть обновлены администратором)
Дайте мне знать, если вам нужно больше.