Отключить секьюрити на некоторых роутах Angular

использую кейклок с ангуляром, как повесить авторизацию пользователей именно на определённые роуты, например ('http://localhost:4200/auth/). А вот на эти роуты можно было бы заходить без регистрации ('http://localhost:4200', 'http://localhost:4200/'). Буду благодарен любой помощи.

добавил это не помогло:

const routes: Routes = [
{path: "auth/orderPanel", component: OrderPanelComponent, canActivate: [NoProjectGuard]},
{path: "", component: MainComponent}
];
@NgModule({
imports: [
    RouterModule.forRoot(routes, { relativeLinkResolution: 'legacy' })
],
exports: [RouterModule],
providers: [NoProjectGuard]
})
export class AppRoutingModule {
}];

Ответы (1 шт):

Автор решения: Alexander Chernin

Надо добавить охранника (Guard) на соответствующий рут. Общая схема такая:

const routes: Routes = [
  {
    path: 'auth', //<- куда
    component: AuthComponent,
    canActivate: [AuthGuard] //<- охранник
  }
  ...
];

Охранник выглядит так:

@Injectable({
  providedIn: 'root'
})
export class AuthGuard implements CanActivate {
   canActivate(
     route: ActivatedRouteSnapshot,
     state: RouterStateSnapshot): Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | boolean | UrlTree {
     return <возврат результата проверки>;
   }
}

Более подробно тут

→ Ссылка