Browse Source

existing code tested and reviewed by me

pull/18768/head
Sinan Öztürk 3 years ago
parent
commit
1d659c5cbe
  1. 2
      npm/ng-packs/apps/dev-app/src/environments/environment.ts
  2. 39
      npm/ng-packs/packages/oauth/src/lib/strategies/auth-code-flow-strategy.ts
  3. 6
      npm/ng-packs/packages/oauth/src/lib/strategies/auth-password-flow-strategy.ts
  4. 8
      npm/ng-packs/packages/oauth/src/lib/utils/auth-utils.ts

2
npm/ng-packs/apps/dev-app/src/environments/environment.ts

@ -14,7 +14,7 @@ export const environment = {
issuer: 'https://localhost:44305/',
clientId: 'MyProjectName_App',
scope: 'offline_access MyProjectName',
// responseType: 'code',
responseType: 'code',
redirectUri: baseUrl,
},
apis: {

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

@ -1,10 +1,10 @@
import { noop } from '@abp/ng.core';
import { Params } from '@angular/router';
import { filter, from, of } from 'rxjs';
import { from, of } from 'rxjs';
import { AuthFlowStrategy } from './auth-flow-strategy';
import { getRememberMe, removeRememberMe, setRememberMe } from '../utils';
export class AuthCodeFlowStrategy extends AuthFlowStrategy{
export class AuthCodeFlowStrategy extends AuthFlowStrategy {
readonly isInternalAuth = false;
private remember_me = 'remember_me'
@ -15,32 +15,8 @@ export class AuthCodeFlowStrategy extends AuthFlowStrategy{
.init()
.then(() => this.oAuthService.tryLogin().catch(noop))
.then(() => this.oAuthService.setupAutomaticSilentRefresh())
// .then(() => this.listenToTokenExpiration());
}
// private listenToTokenExpiration() {
// this.oAuthService.events
// .pipe(
// filter(
// event => {
// return event instanceof OAuthInfoEvent &&
// event.type === 'token_expires' &&
// event.info === 'access_token'
// }
// ),
// )
// .subscribe(() => {
// if (this.oAuthService.getRefreshToken()) {
// console.log('refresh token');
// this.refreshToken();
// } else {
// this.oAuthService.logOut();
// removeRememberMe(this.localStorageService);
// this.configState.refreshAppState().subscribe();
// }
// });
// }
private checkRememberMeOption() {
const accessToken = this.oAuthService.getAccessToken();
const expireDate = this.oAuthService.getAccessTokenExpiration();
@ -49,22 +25,19 @@ export class AuthCodeFlowStrategy extends AuthFlowStrategy{
if (accessToken && rememberMe === null) {
let parsedToken = JSON.parse(atob(accessToken.split(".")[1]));
let rememberMeValue = parsedToken[this.remember_me];
if (parsedToken[this.remember_me]) {
if (rememberMeValue && (rememberMeValue === 'True' || rememberMeValue === 'true')) {
setRememberMe(true, this.localStorageService);
} else {
setRememberMe(false, this.localStorageService)
}
}
rememberMe = getRememberMe(this.localStorageService);
if (accessToken && expireDate < currentDate && rememberMe === 'false') {
rememberMe = getRememberMe(this.localStorageService);
if (accessToken && expireDate < currentDate && rememberMe !== 'true') {
removeRememberMe(this.localStorageService);
this.oAuthService.logOut();
}else{
console.log('try login');
this.oAuthService.tryLogin().catch(noop)
}
}

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

@ -45,9 +45,9 @@ export class AuthPasswordFlowStrategy extends AuthFlowStrategy {
const accessToken = this.oAuthService.getAccessToken();
const expireDate = this.oAuthService.getAccessTokenExpiration();
const currentDate = new Date().getTime();
const rememberMe = getRememberMe(localStorageService) === 'true';
const rememberMe = getRememberMe(localStorageService);
if (accessToken && expireDate < currentDate && !rememberMe) {
if (accessToken && expireDate < currentDate && rememberMe !== 'true') {
removeRememberMe(this.localStorageService);
this.oAuthService.logOut();
}
@ -73,6 +73,7 @@ export class AuthPasswordFlowStrategy extends AuthFlowStrategy {
),
).pipe(pipeToLogin(params, this.injector));
}
logout() {
const router = this.injector.get(Router);
const noRedirectToLogoutUrl = true;
@ -86,7 +87,6 @@ export class AuthPasswordFlowStrategy extends AuthFlowStrategy {
}
protected refreshToken() {
console.log('token refreshed');
return this.oAuthService.refreshToken().catch(() => {
clearOAuthStorage();
removeRememberMe(this.localStorageService);

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

@ -9,8 +9,6 @@ import {
AbpLocalStorageService,
} from '@abp/ng.core';
const cookieKey = 'rememberMe';
const storageKey = 'passwordFlow';
const remember_me = 'remember_me';
export const pipeToLogin: PipeToLoginFn = function (
@ -30,18 +28,16 @@ export const pipeToLogin: PipeToLoginFn = function (
};
export function setRememberMe(
remember: boolean | undefined,
remember: boolean,
localStorageService: AbpLocalStorageService,
) {
console.log('set Remember Me');
localStorageService.setItem(remember_me, JSON.stringify(remember));
}
export function removeRememberMe(localStorageService: AbpLocalStorageService) {
console.log('remove remember Me');
localStorageService.removeItem(remember_me);
}
export function getRememberMe(localStorageService: AbpLocalStorageService){
return localStorageService.getItem(remember_me);
}
}
Loading…
Cancel
Save