Browse Source

Merge pull request #15714 from abpframework/remove-unnescessary-oauth-abstractions

remove unnescessary abstraction
pull/15724/head
Mahmut Gundogdu 4 years ago
committed by GitHub
parent
commit
305dca6b35
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 6
      npm/ng-packs/packages/core/src/lib/models/auth.ts
  2. 3
      npm/ng-packs/packages/core/src/lib/tokens/set-token-response-to-storage.token.ts
  3. 11
      npm/ng-packs/packages/oauth/src/lib/oauth.module.ts
  4. 25
      npm/ng-packs/packages/oauth/src/lib/utils/auth-utils.ts

6
npm/ng-packs/packages/core/src/lib/models/auth.ts

@ -12,6 +12,8 @@ export type PipeToLoginFn = (
params: Pick<LoginParams, 'redirectUrl' | 'rememberMe'>, params: Pick<LoginParams, 'redirectUrl' | 'rememberMe'>,
injector: Injector, injector: Injector,
) => UnaryFunction<any, any>; ) => UnaryFunction<any, any>;
/**
export type SetTokenResponseToStorageFn<T = any> = (injector: Injector, tokenRes: T) => void; * @deprecated The interface should not be used anymore.
*/
export type SetTokenResponseToStorageFn<T = any> = (tokenRes: T) => void;
export type CheckAuthenticationStateFn = (injector: Injector) => void; export type CheckAuthenticationStateFn = (injector: Injector) => void;

3
npm/ng-packs/packages/core/src/lib/tokens/set-token-response-to-storage.token.ts

@ -1,6 +1,9 @@
import { InjectionToken } from '@angular/core'; import { InjectionToken } from '@angular/core';
import { SetTokenResponseToStorageFn } from '../models'; import { SetTokenResponseToStorageFn } from '../models';
/**
* @deprecated The token should not be used anymore.
*/
export const SET_TOKEN_RESPONSE_TO_STORAGE_FN_KEY = new InjectionToken<SetTokenResponseToStorageFn>( export const SET_TOKEN_RESPONSE_TO_STORAGE_FN_KEY = new InjectionToken<SetTokenResponseToStorageFn>(
'SET_TOKEN_RESPONSE_TO_STORAGE_FN_KEY', 'SET_TOKEN_RESPONSE_TO_STORAGE_FN_KEY',
); );

11
npm/ng-packs/packages/oauth/src/lib/oauth.module.ts

@ -1,4 +1,4 @@
import { APP_INITIALIZER, Injector, ModuleWithProviders, NgModule } from '@angular/core'; import { APP_INITIALIZER, ModuleWithProviders, NgModule } from '@angular/core';
import { CommonModule } from '@angular/common'; import { CommonModule } from '@angular/common';
import { OAuthModule, OAuthStorage } from 'angular-oauth2-oidc'; import { OAuthModule, OAuthStorage } from 'angular-oauth2-oidc';
import { import {
@ -7,8 +7,7 @@ import {
AuthService, AuthService,
CHECK_AUTHENTICATION_STATE_FN_KEY, CHECK_AUTHENTICATION_STATE_FN_KEY,
noop, noop,
PIPE_TO_LOGIN_FN_KEY, PIPE_TO_LOGIN_FN_KEY
SET_TOKEN_RESPONSE_TO_STORAGE_FN_KEY,
} from '@abp/ng.core'; } from '@abp/ng.core';
import { storageFactory } from './utils/storage.factory'; import { storageFactory } from './utils/storage.factory';
import { AbpOAuthService } from './services'; import { AbpOAuthService } from './services';
@ -17,7 +16,7 @@ import { HTTP_INTERCEPTORS } from '@angular/common/http';
import { OAuthApiInterceptor } from './interceptors/api.interceptor'; import { OAuthApiInterceptor } from './interceptors/api.interceptor';
import { AbpOAuthGuard } from './guards/oauth.guard'; import { AbpOAuthGuard } from './guards/oauth.guard';
import { NavigateToManageProfileProvider } from './providers'; import { NavigateToManageProfileProvider } from './providers';
import { checkAccessToken, pipeToLogin, setTokenResponseToStorage } from './utils'; import { checkAccessToken, pipeToLogin } from './utils';
@NgModule({ @NgModule({
imports: [CommonModule, OAuthModule], imports: [CommonModule, OAuthModule],
@ -43,10 +42,6 @@ export class AbpOAuthModule {
provide: PIPE_TO_LOGIN_FN_KEY, provide: PIPE_TO_LOGIN_FN_KEY,
useValue: pipeToLogin, useValue: pipeToLogin,
}, },
{
provide: SET_TOKEN_RESPONSE_TO_STORAGE_FN_KEY,
useValue: setTokenResponseToStorage,
},
{ {
provide: CHECK_AUTHENTICATION_STATE_FN_KEY, provide: CHECK_AUTHENTICATION_STATE_FN_KEY,
useValue: checkAccessToken, useValue: checkAccessToken,

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

@ -1,4 +1,4 @@
import { Injector } from '@angular/core'; import { inject, Injector } from '@angular/core';
import { Router } from '@angular/router'; import { Router } from '@angular/router';
import { OAuthStorage, TokenResponse } from 'angular-oauth2-oidc'; import { OAuthStorage, TokenResponse } from 'angular-oauth2-oidc';
import { pipe } from 'rxjs'; import { pipe } from 'rxjs';
@ -29,29 +29,6 @@ export const pipeToLogin: PipeToLoginFn = function (
); );
}; };
export const setTokenResponseToStorage: SetTokenResponseToStorageFn<TokenResponse> = function (
injector: Injector,
tokenRes: TokenResponse,
) {
const { access_token, refresh_token, scope: grantedScopes, expires_in } = tokenRes;
const storage = injector.get(OAuthStorage);
storage.setItem('access_token', access_token);
storage.setItem('refresh_token', refresh_token);
storage.setItem('access_token_stored_at', '' + Date.now());
if (grantedScopes) {
storage.setItem('granted_scopes', JSON.stringify(grantedScopes.split(' ')));
}
if (expires_in) {
const expiresInMilliSeconds = expires_in * 1000;
const now = new Date();
const expiresAt = now.getTime() + expiresInMilliSeconds;
storage.setItem('expires_at', '' + expiresAt);
}
};
export function setRememberMe(remember: boolean) { export function setRememberMe(remember: boolean) {
removeRememberMe(); removeRememberMe();
localStorage.setItem(storageKey, 'true'); localStorage.setItem(storageKey, 'true');

Loading…
Cancel
Save