Маршрут пользователя на основе флага, полученного из Okta Angular 8

#angular #typescript #single-sign-on #angular8 #okta

#angular #typescript #единый вход #angular8 #okta

Вопрос:

В моем приложении, когда пользователь нажимает кнопку «Перейти на страницу входа temporaryLoginPage «, пользователь перенаправляется на страницу входа в Okta. Теперь после успешного входа в систему Okta отправляет обратные заявки, содержащие имя флага: registered . Я хочу перенаправить пользователя на разные страницы на основе registered флага. Вопрос в том, что мое приложение меняет область действия и как захватить информацию в полете и показать какой-то загрузчик на temporaryLogin странице во время проверки флага и при чтении флага, как перенаправить пользователя при следующем условии:

 registered = true // route to /home
registered = false // route to /registration
  

Ответ №1:

Вы можете просто проверить данные, поступающие из службы входа в систему, после успешного завершения и перейти к конкретному маршруту, например-

 this.loginservice(credentials).subscribe(userData=>{
   userData.registered?
       this.router.navigate(['./home']) :
       this.router.navigate(['./registration'])
})
  

Также вы можете добавить один флаг в начале вызова службы и сделать его true и сделать этот loaderFlag false в приведенной выше подписке, чтобы скрыть и показать ваш загрузчик

Ответ №2:

Вероятно, вы могли бы создать свой собственный обработчик для обратного вызова и выполнить в нем некоторую логику. Компонент обратного вызова по умолчанию находится на https://github.com/okta/okta-oidc-js/blob/master/packages/okta-angular/src/okta/components/callback.component.ts.