Browse Source

fix reviews

pull/18768/head
Sinan Öztürk 2 years ago
parent
commit
95a4ccc9c7
  1. 19
      npm/ng-packs/packages/oauth/src/lib/services/remember-me.service.ts
  2. 6
      npm/ng-packs/packages/oauth/src/lib/strategies/auth-code-flow-strategy.ts
  3. 4
      npm/ng-packs/packages/oauth/src/lib/strategies/auth-flow-strategy.ts
  4. 8
      npm/ng-packs/packages/oauth/src/lib/strategies/auth-password-flow-strategy.ts
  5. 4
      npm/ng-packs/packages/oauth/src/lib/utils/auth-utils.ts

19
npm/ng-packs/packages/oauth/src/lib/services/remember-me.service.ts

@ -1,24 +1,27 @@
import { AbpLocalStorageService } from "@abp/ng.core";
import { Injectable, Injector } from "@angular/core";
const rememberMe = 'remember_me';
import { Injectable, inject } from "@angular/core";
@Injectable({
providedIn: 'root'
})
export class RememberMeService {
constructor(private injector: Injector) { }
localStorageService = this.injector.get(AbpLocalStorageService);
readonly #rememberMe = 'remember_me'
protected readonly localStorageService = inject(AbpLocalStorageService);
set(remember: boolean) {
this.localStorageService.setItem(rememberMe, JSON.stringify(remember));
this.localStorageService.setItem(this.#rememberMe, JSON.stringify(remember));
}
remove() {
this.localStorageService.removeItem(rememberMe);
this.localStorageService.removeItem(this.#rememberMe);
}
get() {
return Boolean(JSON.parse(this.localStorageService.getItem(rememberMe)));
return Boolean(JSON.parse(this.localStorageService.getItem(this.#rememberMe)));
}
getFromToken(accessToken: string) {
let parsedToken = JSON.parse(atob(accessToken.split(".")[1]));
return Boolean(parsedToken[this.#rememberMe]);
}
}

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

@ -6,7 +6,6 @@ import { isTokenExpired } from '../utils';
export class AuthCodeFlowStrategy extends AuthFlowStrategy {
readonly isInternalAuth = false;
readonly #rememberMe = 'remember_me'
async init() {
this.checkRememberMeOption();
@ -19,12 +18,11 @@ export class AuthCodeFlowStrategy extends AuthFlowStrategy {
private checkRememberMeOption() {
const accessToken = this.oAuthService.getAccessToken();
const isTokenExpire = isTokenExpired(this.oAuthService);
const isTokenExpire = isTokenExpired(this.oAuthService.getAccessTokenExpiration());
let rememberMe = this.rememberMeService.get();
if (accessToken && !rememberMe) {
let parsedToken = JSON.parse(atob(accessToken.split(".")[1]));
const rememberMeValue = Boolean(parsedToken[this.#rememberMe]);
const rememberMeValue = this.rememberMeService.getFromToken(accessToken);
if (rememberMeValue) {
this.rememberMeService.set(true);

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

@ -82,11 +82,11 @@ export abstract class AuthFlowStrategy {
return this.oAuthService
.loadDiscoveryDocument()
.then(() => {
const isTokenExpire = isTokenExpired(this.oAuthService);
const isTokenExpire = isTokenExpired(this.oAuthService.getAccessTokenExpiration());
if (!isTokenExpire || this.oAuthService.getRefreshToken()) {
return this.refreshToken();
}
return Promise.resolve();
})
.catch(this.catchError);

8
npm/ng-packs/packages/oauth/src/lib/strategies/auth-password-flow-strategy.ts

@ -5,7 +5,7 @@ import { from, Observable } from 'rxjs';
import { HttpHeaders } from '@angular/common/http';
import { AuthFlowStrategy } from './auth-flow-strategy';
import { isTokenExpired, pipeToLogin } from '../utils/auth-utils';
import { AbpLocalStorageService, LoginParams } from '@abp/ng.core';
import { LoginParams } from '@abp/ng.core';
import { clearOAuthStorage } from '../utils/clear-o-auth-storage';
export class AuthPasswordFlowStrategy extends AuthFlowStrategy {
@ -32,14 +32,14 @@ export class AuthPasswordFlowStrategy extends AuthFlowStrategy {
}
async init() {
this.checkRememberMeOption(this.localStorageService);
this.checkRememberMeOption();
return super.init().then(() => this.listenToTokenExpiration());
}
private checkRememberMeOption(localStorageService: AbpLocalStorageService) {
private checkRememberMeOption() {
const accessToken = this.oAuthService.getAccessToken();
const isTokenExpire = isTokenExpired(this.oAuthService);
const isTokenExpire = isTokenExpired(this.oAuthService.getAccessTokenExpiration());
const rememberMe = this.rememberMeService.get();
if (accessToken && isTokenExpire && !rememberMe) {
this.rememberMeService.remove();

4
npm/ng-packs/packages/oauth/src/lib/utils/auth-utils.ts

@ -7,7 +7,6 @@ import {
LoginParams,
PipeToLoginFn,
} from '@abp/ng.core';
import { OAuthService } from 'angular-oauth2-oidc';
import { RememberMeService } from '../services/remember-me.service';
export const pipeToLogin: PipeToLoginFn = function (
@ -26,8 +25,7 @@ export const pipeToLogin: PipeToLoginFn = function (
);
};
export function isTokenExpired(oAuthService: OAuthService): boolean {
const expireDate = oAuthService.getAccessTokenExpiration();
export function isTokenExpired(expireDate: number): boolean {
const currentDate = new Date().getTime();
return expireDate < currentDate;
}

Loading…
Cancel
Save