From 6d82a3bf6b4f9f2cd5634fadeef628afbf2a3c0e Mon Sep 17 00:00:00 2001 From: erdemcaygor Date: Tue, 16 Sep 2025 13:47:51 +0300 Subject: [PATCH] asyncAbpOAuthGuard guard updated --- .../packages/oauth/src/lib/guards/oauth.guard.ts | 12 ++++++++++++ 1 file changed, 12 insertions(+) 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 954094fe00..8123e26f44 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 @@ -85,6 +85,8 @@ export const asyncAbpOAuthGuard: CanActivateFn = ( const oAuthService = inject(OAuthService); const authService = inject(AuthService); const environmentService = inject(EnvironmentService); + const platformId = inject(PLATFORM_ID); + const resInit = inject(RESPONSE_INIT); const { oAuthConfig } = environmentService.getEnvironment(); @@ -96,6 +98,16 @@ export const asyncAbpOAuthGuard: CanActivateFn = ( take(1), timeout(3000), catchError(() => { + if (isPlatformServer(platformId) && resInit) { + const ssrAuthorizationUrl = environmentService.getEnvironment().oAuthConfig.ssrAuthorizationUrl; + const url = buildLoginUrl(ssrAuthorizationUrl, { returnUrl: state.url }); + const headers = new Headers(resInit.headers); + headers.set('Location', url); + resInit.status = 302; + resInit.statusText = 'Found'; + resInit.headers = headers; + return; + } authService.navigateToLogin({ returnUrl: state.url }); return of(false); })