проверка подлинности okta и angular 8

#typescript #angular8 #openid-connect #okta

#typescript #angular8 #OpenID-подключение #okta

Вопрос:

Я внедрил проверку подлинности okta для приложения angular 7. Процесс выглядит следующим образом:

  1. Пользователь попадает на целевую страницу, нажимает кнопку входа
  2. Пользователь перенаправляется на okta login
  3. В okta у нас есть флаг, который проверяет, является ли пользователь новым или не называется «newUser»
  4. После входа в систему okta должен проверить значение флага и, если true, перейти на страницу панели мониторинга, если false, затем на страницу формы.

Как okta может обработать это перенаправление?

Ответ №1:

Вы можете создать свой собственный компонент обратного вызова и сопоставить с ним свой маршрут обратного вызова вместо Okta. Здесь находится компонент обратного вызова по умолчанию. Код в нем:

 import { Component, OnInit } from '@angular/core';

import { OktaAuthService } from '../services/okta.service';

@Component({
  template: `<div>{{error}}</div>`
})
export class OktaCallbackComponent implements OnInit {
  error: string;

  constructor(private okta: OktaAuthService) {}

  async ngOnInit() {
    /**
     * Handles the response from Okta and parses tokens.
     */
    return this.okta.handleAuthentication()
      .then(() => {
        /**
         * Navigate back to the saved uri, or root of application.
         */
        const fromUri = this.okta.getFromUri();
        // add custom logic here
        window.location.replace(fromUri);
      })
      .catch(e => {
        this.error = e.toString();
      });
  }
}