import {Component, OnInit, OnDestroy} from '@angular/core'; import {NavController} from '@ionic/angular'; import {Router} from '@angular/router'; import {AuthActions, IAuthAction} from 'ionic-appauth'; import {Subscription} from 'rxjs'; import {DefaultAuthService} from '../../default-auth.service'; import {AuthHelperService} from '../../auth-helper.service'; @Component({ selector: 'auth-callback', templateUrl: './auth-callback-page.component.html', styleUrls: ['./auth-callback-page.component.scss'], }) export class AuthCallbackPageComponent implements OnInit, OnDestroy { sub: Subscription; constructor( private auth: DefaultAuthService, private navCtrl: NavController, private router: Router, private authHelper: AuthHelperService, ) {} ngOnInit() { this.sub = this.auth.events$.subscribe(action => this.postCallback(action)); this.auth.authorizationCallback(window.location.origin + this.router.url); } ngOnDestroy() { this.sub.unsubscribe(); } async postCallback(action: IAuthAction) { if (action.action === AuthActions.SignInSuccess) { const originPath = await this.authHelper.getOriginPath(); this.navCtrl.navigateRoot(originPath ?? 'profile'); this.authHelper.deleteOriginPath(); } if (action.action === AuthActions.SignInFailed) { this.navCtrl.navigateRoot('profile'); } } }