diff --git a/npm/ng-packs/packages/core/src/lib/services/auth.service.ts b/npm/ng-packs/packages/core/src/lib/services/auth.service.ts index b12794bc80..752721e41a 100644 --- a/npm/ng-packs/packages/core/src/lib/services/auth.service.ts +++ b/npm/ng-packs/packages/core/src/lib/services/auth.service.ts @@ -1,4 +1,5 @@ import { Injectable, Injector } from '@angular/core'; +import { Params } from '@angular/router'; import { from, Observable } from 'rxjs'; import { filter, map, switchMap, take, tap } from 'rxjs/operators'; import { @@ -51,8 +52,8 @@ export class AuthService { this.strategy.navigateToLogin(); } - navigateToLogin() { - this.strategy.navigateToLogin(); + navigateToLogin(queryParams?: Params) { + this.strategy.navigateToLogin(queryParams); } login(params: LoginParams) { diff --git a/npm/ng-packs/packages/core/src/lib/strategies/auth-flow.strategy.ts b/npm/ng-packs/packages/core/src/lib/strategies/auth-flow.strategy.ts index 50e545ca1a..fd550e1e73 100644 --- a/npm/ng-packs/packages/core/src/lib/strategies/auth-flow.strategy.ts +++ b/npm/ng-packs/packages/core/src/lib/strategies/auth-flow.strategy.ts @@ -1,6 +1,6 @@ import { HttpHeaders } from '@angular/common/http'; import { Injector } from '@angular/core'; -import { Router } from '@angular/router'; +import { Params, Router } from '@angular/router'; import { Store } from '@ngxs/store'; import { AuthConfig, OAuthInfoEvent, OAuthService, OAuthStorage } from 'angular-oauth2-oidc'; import { from, Observable, of } from 'rxjs'; @@ -29,7 +29,7 @@ export abstract class AuthFlowStrategy { protected oAuthService: OAuthService; protected oAuthConfig: AuthConfig; abstract checkIfInternalAuth(): boolean; - abstract navigateToLogin(): void; + abstract navigateToLogin(queryParams?: Params): void; abstract logout(): Observable; abstract login(params?: LoginParams): Observable; @@ -78,8 +78,8 @@ export class AuthCodeFlowStrategy extends AuthFlowStrategy { .then(() => this.oAuthService.setupAutomaticSilentRefresh({}, 'access_token')); } - navigateToLogin() { - this.oAuthService.initCodeFlow(); + navigateToLogin(queryParams?: Params) { + this.oAuthService.initCodeFlow(null, queryParams); } checkIfInternalAuth() { @@ -147,9 +147,9 @@ export class AuthPasswordFlowStrategy extends AuthFlowStrategy { return super.init().then(() => this.listenToTokenExpiration()); } - navigateToLogin() { + navigateToLogin(queryParams?: Params) { const router = this.injector.get(Router); - router.navigateByUrl('/account/login'); + router.navigate(['/account/login'], { queryParams }); } checkIfInternalAuth() { @@ -172,7 +172,7 @@ export class AuthPasswordFlowStrategy extends AuthFlowStrategy { tap(res => { this.configState.setState(res); this.setRememberMe(params.rememberMe); - router.navigate([params.redirectUrl || '/']); + if (params.redirectUrl) router.navigate([params.redirectUrl]); }), ); }