From 2c94cfa130b764fd616c3fa1895323d8e64cb53e Mon Sep 17 00:00:00 2001 From: George Kalampokis Date: Fri, 15 Apr 2022 14:01:46 +0300 Subject: [PATCH] Improve Oauth2 Dialog --- .../src/app/ui/auth/login/login.component.ts | 5 +- .../oauth2-dialog/oauth2-dialog.component.ts | 16 +++---- .../service/oauth2-dialog.service.ts | 28 ++++------- .../src/environments/environment.prod.ts | 40 ---------------- .../src/environments/environment.staging.ts | 40 ---------------- dmp-frontend/src/environments/environment.ts | 47 +------------------ 6 files changed, 18 insertions(+), 158 deletions(-) delete mode 100644 dmp-frontend/src/environments/environment.prod.ts delete mode 100644 dmp-frontend/src/environments/environment.staging.ts diff --git a/dmp-frontend/src/app/ui/auth/login/login.component.ts b/dmp-frontend/src/app/ui/auth/login/login.component.ts index 17ed6d2ac..25b434939 100644 --- a/dmp-frontend/src/app/ui/auth/login/login.component.ts +++ b/dmp-frontend/src/app/ui/auth/login/login.component.ts @@ -6,7 +6,6 @@ import { AuthService } from '@app/core/services/auth/auth.service'; import { ConfigurableProvidersService } from '@app/ui/auth/login/utilities/configurableProviders.service'; import { LoginService } from '@app/ui/auth/login/utilities/login.service'; import { BaseComponent } from '@common/base/base.component'; -import { environment } from 'environments/environment'; import { takeUntil } from 'rxjs/operators'; import { ConfigurationService } from '@app/core/services/configuration/configuration.service'; import { MergeLoginService } from './utilities/merge-login.service'; @@ -251,11 +250,11 @@ export class LoginComponent extends BaseComponent implements OnInit, AfterViewIn client_id: this.configurationService.loginProviders.googleConfiguration.clientId, scope: 'profile email' }); - this.attachGoogleSignΙn(document.getElementById('googleSignInButton')); + this.attachGoogleSignIn(document.getElementById('googleSignInButton')); }); } - public attachGoogleSignΙn(element) { + public attachGoogleSignIn(element) { if (!element) { return; } this.auth2.attachClickHandler(element, {}, (googleUser) => { diff --git a/dmp-frontend/src/app/ui/misc/oauth2-dialog/oauth2-dialog.component.ts b/dmp-frontend/src/app/ui/misc/oauth2-dialog/oauth2-dialog.component.ts index 4457a9a48..0bb7a3a70 100644 --- a/dmp-frontend/src/app/ui/misc/oauth2-dialog/oauth2-dialog.component.ts +++ b/dmp-frontend/src/app/ui/misc/oauth2-dialog/oauth2-dialog.component.ts @@ -33,15 +33,13 @@ export class Oauth2DialogComponent extends BaseComponent implements OnInit{ } private sendCode(params: Params) { - if (params['code']) { - localStorage.setItem('oauthCode', params['code']); - } - if (params['state']) { - localStorage.setItem('oauthState', params['state']); - } - if (params['oauth_token'] && params['oauth_verifier']) { - localStorage.setItem('oauthObject', JSON.stringify({oauth_token: params['oauth_token'], oauth_verifier: params['oauth_verifier']})); - } + const oauthObject = { + oauthCode: params['code'] ? params['code'] : undefined, + oauthState: params['state'] ? params['state'] : undefined, + oauthToken: params['oauth_token'] ? params['oath_token'] : undefined, + oauthVerifier: params['oauth_verifier'] ? params['oauth_verifier'] : undefined + }; + localStorage.setItem('arglogRes', JSON.stringify({response: { date: new Date(), data: oauthObject }})); window.close(); } diff --git a/dmp-frontend/src/app/ui/misc/oauth2-dialog/service/oauth2-dialog.service.ts b/dmp-frontend/src/app/ui/misc/oauth2-dialog/service/oauth2-dialog.service.ts index 8b556b63d..611c8dd6d 100644 --- a/dmp-frontend/src/app/ui/misc/oauth2-dialog/service/oauth2-dialog.service.ts +++ b/dmp-frontend/src/app/ui/misc/oauth2-dialog/service/oauth2-dialog.service.ts @@ -14,7 +14,7 @@ export class Oauth2DialogService extends BaseService{ super(); } - public registerCode(code: string) { + public registerCode(code: any) { this.code.next(code); } @@ -22,26 +22,14 @@ export class Oauth2DialogService extends BaseService{ const windows = window.open(this.configurationService.app + 'oauth2?url=' + encodeURIComponent(url) ,'', `height=500px,width=500px,top=${(window.screen.height / 2) - 200}px,left=${(window.screen.width / 2) - 200}px`); const sub = interval(300).pipe(takeUntil(this._destroyed)).subscribe(() => { if (windows.closed) { - let oauthCode; - let oauthState; - let oauthToken; - let oauthVerifier; - if (localStorage.getItem('oauthCode')) { - oauthCode = localStorage.getItem('oauthCode'); - localStorage.removeItem('oauthCode'); + if (localStorage.getItem('arglogRes')) { + const oauthResponse = JSON.parse(localStorage.getItem('arglogRes')); + localStorage.removeItem('arglogRes'); + const oauthObject = oauthResponse.response.data; + this.code.next(oauthObject); + this.code.next(undefined); } - if (localStorage.getItem('oauthState')) { - oauthState = localStorage.getItem('oauthState'); - localStorage.removeItem('oauthState'); - } - if (localStorage.getItem('oauthObject')) { - const oauthObject = JSON.parse(localStorage.getItem('oauthObject')); - localStorage.removeItem('oauthObject'); - oauthToken = oauthObject.oauth_token; - oauthVerifier = oauthObject.oauth_verifier; - } - this.code.next({oauthCode: oauthCode, oauthState: oauthState, oauthToken: oauthToken, oauthVerifier: oauthVerifier}); - this.code.next(undefined); + sub.unsubscribe(); } }); diff --git a/dmp-frontend/src/environments/environment.prod.ts b/dmp-frontend/src/environments/environment.prod.ts deleted file mode 100644 index 601551986..000000000 --- a/dmp-frontend/src/environments/environment.prod.ts +++ /dev/null @@ -1,40 +0,0 @@ -export const environment = { - production: true, - Server: 'https://devel.opendmp.eu/srv/api/', - App: 'https://devel.opendmp.eu/', - HelpService: { - Enabled: false, - Url: 'https://devel.opendmp.eu/content-service/', - }, - defaultCulture: 'en-US', - loginProviders: { - enabled: [1, 2, 3, 4, 5, 6], - facebookConfiguration: { clientId: '' }, - googleConfiguration: { clientId: '' }, - linkedInConfiguration: { - clientId: '', - oauthUrl: 'https://www.linkedin.com/oauth/v2/authorization', - redirectUri: 'http://localhost:4200/login/linkedin', - state: '' - }, - twitterConfiguration: { - clientId: '', - oauthUrl: 'https://api.twitter.com/oauth/authenticate' - }, - b2accessConfiguration: { - clientId: '', - oauthUrl: 'https://b2access-integration.fz-juelich.de:443/oauth2-as/oauth2-authz', - redirectUri: 'http://opendmp.eu/api/oauth/authorized/b2access', - state: '' - }, - orcidConfiguration: { - clientId: 'APP-766DI5LP8T75FC4R', - oauthUrl: 'https://sandbox.orcid.org/oauth/authorize', - redirectUri: 'http://opendmp.eu/api/oauth/authorized/orcid' - } - }, - logging: { - enabled: false, - logLevels: ["debug", "info", "warning", "error"] - }, -}; diff --git a/dmp-frontend/src/environments/environment.staging.ts b/dmp-frontend/src/environments/environment.staging.ts deleted file mode 100644 index 63cfd85e5..000000000 --- a/dmp-frontend/src/environments/environment.staging.ts +++ /dev/null @@ -1,40 +0,0 @@ -export const environment = { - production: true, - Server: 'https://devel.opendmp.eu/srv/api/', - App: 'https://devel.opendmp.eu/', - HelpService: { - Enabled: false, - Url: 'https://devel.opendmp.eu/content-service/', - }, - defaultCulture: 'en-US', - loginProviders: { - enabled: [1, 2, 3, 4, 5, 6], - facebookConfiguration: { clientId: '' }, - googleConfiguration: { clientId: '596924546661-83nhl986pnrpug5h624i5kptuao03dcd.apps.googleusercontent.com' }, - linkedInConfiguration: { - clientId: '', - oauthUrl: 'https://www.linkedin.com/oauth/v2/authorization', - redirectUri: 'https://devel.opendmp.eu/login/linkedin', - state: '' - }, - twitterConfiguration: { - clientId: '', - oauthUrl: 'https://api.twitter.com/oauth/authenticate' - }, - b2accessConfiguration: { - clientId: '', - oauthUrl: 'https://b2access-integration.fz-juelich.de:443/oauth2-as/oauth2-authz', - redirectUri: 'http://devel.opendmp.eu/api/oauth/authorized/b2access', - state: '' - }, - orcidConfiguration: { - clientId: '', - oauthUrl: 'https://sandbox.orcid.org/oauth/authorize', - redirectUri: 'http://opendmp.eu/api/oauth/authorized/orcid' - } - }, - logging: { - enabled: false, - logLevels: ["debug", "info", "warning", "error"] - }, -}; diff --git a/dmp-frontend/src/environments/environment.ts b/dmp-frontend/src/environments/environment.ts index ab3e5f23b..46808e456 100644 --- a/dmp-frontend/src/environments/environment.ts +++ b/dmp-frontend/src/environments/environment.ts @@ -1,48 +1,3 @@ export const environment = { - production: false, - Server: 'http://localhost:8080/api/', - App: 'http://localhost:4200/', - HelpService: { - Enabled: false, - Url: 'localhost:5000/', - }, - defaultCulture: 'en-US', - loginProviders: { - enabled: [1, 2, 3, 4, 5, 6, 7, 8], - facebookConfiguration: { clientId: '' }, - googleConfiguration: { clientId: '' }, - linkedInConfiguration: { - clientId: '', - oauthUrl: 'https://www.linkedin.com/oauth/v2/authorization', - redirectUri: 'http://localhost:4200/login/linkedin', - state: '987654321' - }, - twitterConfiguration: { - clientId: '', - oauthUrl: 'https://api.twitter.com/oauth/authenticate' - }, - b2accessConfiguration: { - clientId: '', - oauthUrl: 'https://b2access-integration.fz-juelich.de:443/oauth2-as/oauth2-authz', - redirectUri: 'http://localhost:4200/api/oauth/authorized/b2access', - state: '' - }, - orcidConfiguration: { - clientId: 'APP-766DI5LP8T75FC4R', - oauthUrl: 'https://orcid.org/oauth/authorize', - redirectUri: 'http://localhost:4200/login/external/orcid' - }, - openAireConfiguration: { - clientId: '', - oauthUrl: '', - redirectUri: '', - state: '987654321' - } - }, - logging: { - enabled: true, - logLevels: ["debug", "info", "warning", "error"] - }, - lockInterval: 60000, - guideAssets: "assets/images/guide" + production: false };