#angular #keycloak #keycloak-angular
Вопрос:
Я пытаюсь защитить приложение Spring Boot с помощью Angular в качестве интерфейса. Поэтому я использую keycloak-angular и keycloak-js.
В каждом примере, который вы можете найти, всегда предполагается, что все маршруты должны быть защищены. Теперь у меня есть несколько маршрутов, которые находятся в открытом доступе:
{ path: 'dashboard', component: DashboardComponent, resolve: { data: LayoutResolver } }, { path: 'add-news', component: AddNewsComponent, canActivate: [AdminAuthGuard] },
Мой ИНИЦИАЛИЗАТОР APP_INITIALIZER выглядит так:
function initializeKeycloak(keycloak: KeycloakService) { return () =gt; keycloak.init({ config: { url: environment.keycloakUrl, realm: environment.keycloakRealm, clientId: environment.keycloakClientId, }, initOptions: { onLoad: 'check-sso', silentCheckSsoRedirectUri: window.location.origin '/assets/silent-check-sso.html', } }); }
Все работает нормально. Однако, когда я нахожусь на панели мониторинга и перезагружаю страницу, я, кажется, теряю аутентификацию. keycloakService.isLoggedIn всегда возвращает «false». Что я делаю не так? Я ожидаю, что в этом случае я все равно войду в систему.
Ответ №1:
Я переустановил сервер блокировки ключей, и все заработало. Должно быть, я нарушил его, переименовывая область и клиента.