Browse Source

asyncAbpOAuthGuard guard updated

pull/23416/head
erdemcaygor 8 months ago
parent
commit
6d82a3bf6b
  1. 12
      npm/ng-packs/packages/oauth/src/lib/guards/oauth.guard.ts

12
npm/ng-packs/packages/oauth/src/lib/guards/oauth.guard.ts

@ -85,6 +85,8 @@ export const asyncAbpOAuthGuard: CanActivateFn = (
const oAuthService = inject(OAuthService); const oAuthService = inject(OAuthService);
const authService = inject(AuthService); const authService = inject(AuthService);
const environmentService = inject(EnvironmentService); const environmentService = inject(EnvironmentService);
const platformId = inject(PLATFORM_ID);
const resInit = inject(RESPONSE_INIT);
const { oAuthConfig } = environmentService.getEnvironment(); const { oAuthConfig } = environmentService.getEnvironment();
@ -96,6 +98,16 @@ export const asyncAbpOAuthGuard: CanActivateFn = (
take(1), take(1),
timeout(3000), timeout(3000),
catchError(() => { 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 }); authService.navigateToLogin({ returnUrl: state.url });
return of(false); return of(false);
}) })

Loading…
Cancel
Save