diff --git a/npm/ng-packs/packages/identity/ng-package.json b/npm/ng-packs/packages/identity/ng-package.json index a0824f39e5..68f95303e4 100644 --- a/npm/ng-packs/packages/identity/ng-package.json +++ b/npm/ng-packs/packages/identity/ng-package.json @@ -6,6 +6,7 @@ }, "allowedNonPeerDependencies": [ "@abp/ng.theme.shared", - "@abp/ng.permission-management" + "@abp/ng.permission-management", + "@abp/ng.components" ] } diff --git a/npm/ng-packs/packages/oauth/src/lib/strategies/auth-flow-strategy.ts b/npm/ng-packs/packages/oauth/src/lib/strategies/auth-flow-strategy.ts index 039565f8cf..9199fbf7cf 100644 --- a/npm/ng-packs/packages/oauth/src/lib/strategies/auth-flow-strategy.ts +++ b/npm/ng-packs/packages/oauth/src/lib/strategies/auth-flow-strategy.ts @@ -33,11 +33,8 @@ export abstract class AuthFlowStrategy { protected router: Router; abstract checkIfInternalAuth(queryParams?: Params): boolean; - abstract navigateToLogin(queryParams?: Params): void; - abstract logout(queryParams?: Params): Observable; - abstract login(params?: LoginParams | Params): Observable; private catchError = (err: HttpErrorResponse) => { @@ -84,26 +81,29 @@ export abstract class AuthFlowStrategy { .catch(this.catchError); } - protected navigateToPreviousUrl() { - this.oAuthService.events - .pipe( - filter(event => event.type === 'token_received' && !!this.oAuthService.state), - map(() => { - const redirect_uri = decodeURIComponent(this.oAuthService.state); - - if (redirect_uri && redirect_uri !== '/') { - return redirect_uri; - } - return '/'; - }), - switchMap(redirectUri => - this.configState.getOne$('currentUser').pipe( - filter(user => Boolean(user?.isAuthenticated)), - tap(() => this.router.navigate([redirectUri])), + protected navigateToPreviousUrl(): void { + const { responseType } = this.oAuthConfig; + if (responseType === 'code') { + this.oAuthService.events + .pipe( + filter(event => event.type === 'token_received' && !!this.oAuthService.state), + map(() => { + const redirect_uri = decodeURIComponent(this.oAuthService.state); + + if (redirect_uri && redirect_uri !== '/') { + return redirect_uri; + } + return '/'; + }), + switchMap(redirectUri => + this.configState.getOne$('currentUser').pipe( + filter(user => Boolean(user?.isAuthenticated)), + tap(() => this.router.navigate([redirectUri])), + ), ), - ), - ) - .subscribe(); + ) + .subscribe(); + } } protected refreshToken() {