Я пытаюсь разместить шаблон входа для аутентификации в приложении Angular 9. Обратный вызов должен ударить / обратный вызов в моем приложении Angular с кодом авторизации. Это происходит потому, что я вижу код, выполняемый распознавателем.
Однако, похоже, перенаправление также происходит в iframe. У меня есть iframe в контейнере и через директиву * ngIf, попробуйте закрыть его, когда происходит вторая загрузка. Однако он никогда не закрывается и вместо этого отображает главное окно приложения. Перенаправление всего происходит в окне iframe.
Не уверен, как это исправить. Мне нужен обратный вызов для загрузки на стороне Angular и фрейма для завершения sh, как часть потока oauth.
<div class="login-wrapper" fxLayout="row" fxLayoutAlign="center center">
<ng-container *ngIf="!reRoute">
<iframe height="350"
#iframe
width="100%"
allowfullscreen
frameborder="0"
[src]="authUrl | safe"></iframe>
</ng-container>
reRoute = false;
@Input() authUrl: string;
@ViewChild('iframe', {static: false}) iframe: ElementRef;
constructor(private auth: AuthService,
private util: UtilService,
private router: Router,
private window: Window) {
}
ngOnDestroy(): void {
}
ngAfterContentInit(): void {
if (!this.iframe) {
return;
}
fromEvent(this.iframe.nativeElement, 'load')
.pipe(
untilDestroyed(this)
)
.subscribe((event: Event) => {
console.log('iframe has loaded');
this.reRoute = true;
});
}