From 0f691dfe85a76c444b65bcceb47dfb5cecd54e11 Mon Sep 17 00:00:00 2001 From: muhammedaltug Date: Mon, 26 Sep 2022 16:23:33 +0300 Subject: [PATCH 1/2] reduce token expiration timeout --- npm/ng-packs/packages/core/src/lib/core.module.ts | 4 +++- .../packages/core/src/lib/services/index.ts | 1 + .../lib/services/timeout-limited-oauth.service.ts | 13 +++++++++++++ 3 files changed, 17 insertions(+), 1 deletion(-) create mode 100644 npm/ng-packs/packages/core/src/lib/services/timeout-limited-oauth.service.ts diff --git a/npm/ng-packs/packages/core/src/lib/core.module.ts b/npm/ng-packs/packages/core/src/lib/core.module.ts index bcc071185f..4bf3fae3a1 100644 --- a/npm/ng-packs/packages/core/src/lib/core.module.ts +++ b/npm/ng-packs/packages/core/src/lib/core.module.ts @@ -3,7 +3,7 @@ import { HTTP_INTERCEPTORS, HttpClientModule, HttpClientXsrfModule } from '@angu import { APP_INITIALIZER, Injector, ModuleWithProviders, NgModule } from '@angular/core'; import { FormsModule, ReactiveFormsModule } from '@angular/forms'; import { RouterModule } from '@angular/router'; -import { OAuthModule, OAuthStorage } from 'angular-oauth2-oidc'; +import { OAuthModule, OAuthService, OAuthStorage } from 'angular-oauth2-oidc'; import { AbstractNgModelComponent } from './abstracts/ng-model.component'; import { DynamicLayoutComponent } from './components/dynamic-layout.component'; import { ReplaceableRouteContainerComponent } from './components/replaceable-route-container.component'; @@ -37,6 +37,7 @@ import { getInitialData, localeInitializer } from './utils/initial-utils'; import { ShortDateTimePipe } from './pipes/short-date-time.pipe'; import { ShortTimePipe } from './pipes/short-time.pipe'; import { ShortDatePipe } from './pipes/short-date.pipe'; +import { TimeoutLimitedOAuthService } from './services/timeout-limited-oauth.service'; export function storageFactory(): OAuthStorage { return oAuthStorage; @@ -184,6 +185,7 @@ export class CoreModule { useFactory: noop, }, { provide: OAuthStorage, useFactory: storageFactory }, + { provide: OAuthService, useClass: TimeoutLimitedOAuthService }, { provide: TENANT_KEY, useValue: options.tenantKey || '__tenant' }, { provide: LOCALIZATIONS, diff --git a/npm/ng-packs/packages/core/src/lib/services/index.ts b/npm/ng-packs/packages/core/src/lib/services/index.ts index 6f20399fce..7584316db0 100644 --- a/npm/ng-packs/packages/core/src/lib/services/index.ts +++ b/npm/ng-packs/packages/core/src/lib/services/index.ts @@ -19,3 +19,4 @@ export * from './routes.service'; export * from './session-state.service'; export * from './subscription.service'; export * from './track-by.service'; +export * from './timeout-limited-oauth.service'; diff --git a/npm/ng-packs/packages/core/src/lib/services/timeout-limited-oauth.service.ts b/npm/ng-packs/packages/core/src/lib/services/timeout-limited-oauth.service.ts new file mode 100644 index 0000000000..47b25ba306 --- /dev/null +++ b/npm/ng-packs/packages/core/src/lib/services/timeout-limited-oauth.service.ts @@ -0,0 +1,13 @@ +import { Injectable } from '@angular/core'; +import { OAuthService } from 'angular-oauth2-oidc'; + +@Injectable() +export class TimeoutLimitedOAuthService extends OAuthService { + protected override calcTimeout(storedAt: number, expiration: number): number { + const now = this.dateTimeService.now(); + const delta = (expiration - storedAt) * this.timeoutFactor - (now - storedAt); + const result = Math.max(0, delta); + const MAX_TIMEOUT_DURATION = 2147483647; + return result < MAX_TIMEOUT_DURATION ? result : MAX_TIMEOUT_DURATION - 1; + } +} From 1878af380dcf885ae2d64b5d0a76ff68aceb5819 Mon Sep 17 00:00:00 2001 From: muhammedaltug Date: Mon, 26 Sep 2022 16:57:13 +0300 Subject: [PATCH 2/2] update rxjs version --- templates/app-nolayers/angular/package.json | 2 +- templates/app/angular/package.json | 2 +- templates/module/angular/package.json | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/templates/app-nolayers/angular/package.json b/templates/app-nolayers/angular/package.json index 91ea4e0a2d..c64a6d2a33 100644 --- a/templates/app-nolayers/angular/package.json +++ b/templates/app-nolayers/angular/package.json @@ -29,7 +29,7 @@ "@angular/platform-browser": "^14.2.1", "@angular/platform-browser-dynamic": "^14.2.1", "@angular/router": "^14.2.1", - "rxjs": "~6.6.0", + "rxjs": "7.5.6", "tslib": "^2.1.0", "bootstrap-icons": "~1.8.3", "zone.js": "~0.11.4" diff --git a/templates/app/angular/package.json b/templates/app/angular/package.json index d05baf1b85..0271f5e6dc 100644 --- a/templates/app/angular/package.json +++ b/templates/app/angular/package.json @@ -30,7 +30,7 @@ "@angular/platform-browser-dynamic": "^14.2.1", "@angular/router": "^14.2.1", "bootstrap-icons": "~1.8.3", - "rxjs": "~6.6.0", + "rxjs": "7.5.6", "tslib": "^2.1.0", "zone.js": "~0.11.4" }, diff --git a/templates/module/angular/package.json b/templates/module/angular/package.json index a7343c2db7..c091e71569 100644 --- a/templates/module/angular/package.json +++ b/templates/module/angular/package.json @@ -32,7 +32,7 @@ "@angular/platform-browser": "^14.2.1", "@angular/platform-browser-dynamic": "^14.2.1", "@angular/router": "^14.2.1", - "rxjs": "~6.6.0", + "rxjs": "7.5.6", "tslib": "^2.1.0", "zone.js": "~0.11.4" },