#typescript #angular8 #openid-connect #okta
#typescript #angular8 #OpenID-подключение #okta
Вопрос:
Я внедрил проверку подлинности okta для приложения angular 7. Процесс выглядит следующим образом:
- Пользователь попадает на целевую страницу, нажимает кнопку входа
- Пользователь перенаправляется на okta login
- В okta у нас есть флаг, который проверяет, является ли пользователь новым или не называется «newUser»
- После входа в систему 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();
});
}
}