Browse Source

transfer state interceptor service created

feature/ssr-migration-schematic
erdemcaygor 6 months ago
parent
commit
635e7e62ca
  1. 44
      npm/ng-packs/packages/core/src/lib/interceptors/transfer-state.interceptor.ts
  2. 12
      npm/ng-packs/packages/oauth/src/lib/strategies/auth-code-flow-strategy.ts

44
npm/ng-packs/packages/core/src/lib/interceptors/transfer-state.interceptor.ts

@ -0,0 +1,44 @@
import { inject, Injectable, makeStateKey, PLATFORM_ID, TransferState } from '@angular/core';
import {
HttpEvent,
HttpHandler,
HttpInterceptor,
HttpRequest,
HttpResponse,
} from '@angular/common/http';
import { Observable, of } from 'rxjs';
import { isPlatformBrowser, isPlatformServer } from '@angular/common';
import { tap } from 'rxjs/operators';
@Injectable()
export class TransferStateInterceptor implements HttpInterceptor {
private transferState = inject(TransferState);
private platformId = inject(PLATFORM_ID);
constructor() {}
intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
if (req.method !== 'GET') {
return next.handle(req);
}
const stateKey = makeStateKey<HttpResponse<any>>(req.urlWithParams);
if (isPlatformBrowser(this.platformId)) {
const storedResponse = this.transferState.get<HttpResponse<any>>(stateKey, null);
if (storedResponse) {
this.transferState.remove(stateKey);
return of(new HttpResponse<any>({ body: storedResponse, status: 200 }));
}
}
return next.handle(req).pipe(
tap(event => {
if (isPlatformServer(this.platformId) && event instanceof HttpResponse) {
this.transferState.set(stateKey, event.body);
console.log(`Interceptor: ${req.urlWithParams} verisi TransferState'e kaydedildi.`);
}
}),
);
}
}

12
npm/ng-packs/packages/oauth/src/lib/strategies/auth-code-flow-strategy.ts

@ -22,14 +22,22 @@ export class AuthCodeFlowStrategy extends AuthFlowStrategy {
return super
.init()
.then(() => this.oAuthService.tryLogin().catch(noop))
.then(() => this.oAuthService.setupAutomaticSilentRefresh());
.then(() => {
//TODO:Investigate silent refresh issue in SSR
if (isPlatformBrowser(this.platformId)) {
this.oAuthService.setupAutomaticSilentRefresh();
}
});
}
private checkRememberMeOption() {
console.log('checkRememberMeOption called ---->>>>>');
const accessToken = this.oAuthService.getAccessToken();
console.log('accessToken New ----->>>>', accessToken);
const isTokenExpire = isTokenExpired(this.oAuthService.getAccessTokenExpiration());
console.log('isTokenExpire New ----->>>>', isTokenExpire);
let rememberMe = this.rememberMeService.get();
console.log('rememberMe New ----->>>>', rememberMe);
if (accessToken && !rememberMe) {
const rememberMeValue = this.rememberMeService.getFromToken(accessToken);

Loading…
Cancel
Save