Обратный вызов сервера происходит в окне iframe - PullRequest
0 голосов
/ 10 марта 2020

Я пытаюсь разместить шаблон входа для аутентификации в приложении 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;
  });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...