From 4891d14935af2b05ba39c4d6a970bb3b3bc3df96 Mon Sep 17 00:00:00 2001 From: Masum ULU Date: Tue, 16 May 2023 17:30:08 +0300 Subject: [PATCH] fix conflict with dev --- .../oauth/src/lib/guards/oauth.guard.ts | 21 ++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/npm/ng-packs/packages/oauth/src/lib/guards/oauth.guard.ts b/npm/ng-packs/packages/oauth/src/lib/guards/oauth.guard.ts index 84e4a76f49..9ddcc23340 100644 --- a/npm/ng-packs/packages/oauth/src/lib/guards/oauth.guard.ts +++ b/npm/ng-packs/packages/oauth/src/lib/guards/oauth.guard.ts @@ -1,8 +1,8 @@ import { Injectable, inject } from '@angular/core'; -import { UrlTree } from '@angular/router'; +import { UrlTree, ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router'; import { HttpErrorResponse } from '@angular/common/http'; -import { Observable } from 'rxjs'; +import { Observable, delay, of, tap } from 'rxjs'; import { OAuthService } from 'angular-oauth2-oidc'; import { AuthService, HttpErrorReporterService, IAbpGuard } from '@abp/ng.core'; @@ -15,13 +15,24 @@ export class AbpOAuthGuard implements IAbpGuard { protected readonly authService = inject(AuthService); protected readonly httpErrorReporter = inject(HttpErrorReporterService); - canActivate(): Observable | boolean | UrlTree { + canActivate( + route: ActivatedRouteSnapshot, + state: RouterStateSnapshot, + ): Observable | boolean | UrlTree { const hasValidAccessToken = this.oAuthService.hasValidAccessToken(); if (hasValidAccessToken) { return true; } - this.httpErrorReporter.reportError({ status: 401 } as HttpErrorResponse); - return false; + return of(false).pipe( + tap(() => { + this.httpErrorReporter.reportError({ status: 401 } as HttpErrorResponse); + }), + delay(1500), + tap(() => { + const params = { returnUrl: state.url }; + this.authService.navigateToLogin(params); + }), + ); } }