From 7978c41fcff437fc9023e33658961f1215ce1690 Mon Sep 17 00:00:00 2001 From: "Fergus MacConnell WLRS:EX" Date: Fri, 20 Sep 2024 16:06:08 -0700 Subject: [PATCH] =?UTF-8?q?Clean=20up=20=F0=9F=99=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/frontend/src/common/authenticate.js | 95 ++------------------- app/frontend/src/common/components/Auth.vue | 2 - app/frontend/src/common/store/auth.js | 1 - app/frontend/vue.config.js | 10 --- 4 files changed, 7 insertions(+), 101 deletions(-) diff --git a/app/frontend/src/common/authenticate.js b/app/frontend/src/common/authenticate.js index 4e2b980e1..ae053cdca 100644 --- a/app/frontend/src/common/authenticate.js +++ b/app/frontend/src/common/authenticate.js @@ -21,22 +21,10 @@ export default { return new Promise((resolve, reject) => { if (!Vue.prototype.$keycloak) { - // try { - // Vue.prototype.$keycloak = new Keycloak() - - // return Vue.prototype.$keycloak; - - // } catch (error) { - // console.error("Keycloak Instance ERROR: ", error); - // } - // Keycloak has not yet been loaded, get Keycloak configuration from the server. ApiService.query('keycloak', {}) .then(response => { - console.log("Keycloak Config Data: ", response.data) - const { - url, 'ssl-required': sslRequired , resource, realm, @@ -45,23 +33,7 @@ export default { clientId, 'auth-server-url': authServerUrl } = response.data; - /* - "A best practice is to load the JavaScript adapter directly from Keycloak Server as it will - automatically be updated when you upgrade the server. If you copy the adapter to your web - application instead, make sure you upgrade the adapter only after you have upgraded the server."; - source : https://www.keycloak.org/docs/latest/securing_apps/index.html#_javascript_adapter: - */ - // const jsUrl = `${response.data['auth-server-url']}/js/keycloak.js` - // const jsUrl = "https://unpkg.com/keycloak-js@24.0.0/dist/keycloak.min.js" - // Inject the Keycloak javascript into the DOM. - // const keyCloakScript = document.createElement('script') - - // keyCloakScript.onload = () => { - // // Construct the Keycloak object and resolve the promise. - // Vue.prototype.$keycloak = new Keycloak(response.data) - // resolve(Vue.prototype.$keycloak) - // } Vue.prototype.$keycloak = new Keycloak({ url: authServerUrl, realm, @@ -74,23 +46,11 @@ export default { resolve(Vue.prototype.$keycloak) - // keyCloakScript.onerror = (e) => { - // // This is pretty bad - keycloak didn't load - this should never ever happen. - // // There's not much we can do, so we set keycloak to a random empty object and resolve. - // console.error(e) - // Vue.prototype.$keycloak = {} - // resolve(Vue.prototype.$keycloak) - // } - - // keyCloakScript.async = true - // keyCloakScript.setAttribute('src', jsUrl) - // document.head.appendChild(keyCloakScript) }) .catch(error => { console.error(error) Vue.prototype.$keycloak = {} resolve(Vue.prototype.$keycloak) - // reject(error) }) } else { // Keycloak has already been loaded, so just resolve the object. @@ -153,35 +113,28 @@ export default { return new Promise((resolve, reject) => { this.getInstance() .then(async (instance) => { - console.log("INSTANCE: ", instance.authenticated) if (instance.authenticated && ApiService.hasAuthHeader() && !instance.isTokenExpired(0)) { // We've already authenticated, have a header, and we've not expired. resolve(instance) } else { - // this.removeLocalToken() - // instance.clearToken() - // // We update the store reference only after wiring up the API. (Someone might be waiting - // // for login to complete before taking some action. ) - // store.commit('SET_KEYCLOAK', instance) - // resolve(instance) - try { - console.log("before auth") + // Attempt to retrieve a stored token, this may avoid us having to refresh the page. + const token = localStorage.getItem('token') + const refreshToken = localStorage.getItem('refreshToken') + const idToken = localStorage.getItem('idToken') + const authed = await instance.init({ pkceMethod: 'S256', onLoad: 'check-sso', timeSkew: 10, - checkLoginIframe: false, + checkLoginIframe: true, token, refreshToken, idToken, }) - console.log(`User is ${authed ? 'authenticated' : 'not authenticated'}`); - if (instance.authenticated) { - console.log("authenticated") // We may have been authenticated, but the token could be expired. instance.updateToken(60).then(() => { // Store the token to avoid future round trips, and wire up the API @@ -192,7 +145,7 @@ export default { store.commit('SET_KEYCLOAK', instance) this.scheduleRenewal(instance) resolve(instance) - }).error(() => { + }).catch(() => { // The refresh token is expired or was rejected this.removeLocalToken() instance.clearToken() @@ -211,41 +164,7 @@ export default { } catch (error) { console.error('Failed to initialize adapter:', error); } - // Attempt to retrieve a stored token, this may avoid us having to refresh the page. - const token = localStorage.getItem('token') - const refreshToken = localStorage.getItem('refreshToken') - const idToken = localStorage.getItem('idToken') - // ).then((result) => { - // if (instance.authenticated) { - // // We may have been authenticated, but the token could be expired. - // instance.updateToken(60).then(() => { - // // Store the token to avoid future round trips, and wire up the API - // this.setLocalToken(instance) - // // We update the store reference only after wiring up the API. (Someone might be waiting - // // for login to complete before taking some action. ) - // // Assumes that store passed in includes a 'SET_KEYCLOAK' mutation! - // store.commit('SET_KEYCLOAK', instance) - // this.scheduleRenewal(instance) - // resolve(instance) - // }).error(() => { - // // The refresh token is expired or was rejected - // this.removeLocalToken() - // instance.clearToken() - // // We update the store reference only after wiring up the API. (Someone might be waiting - // // for login to complete before taking some action. ) - // store.commit('SET_KEYCLOAK', instance) - // resolve(instance) - // }) - // } else { - // // We may have failed to authenticate, for many reasons, e.g. - it may be we never logged in, - // // or have an expired token. - // store.commit('SET_KEYCLOAK', instance) - // resolve(instance) - // } - // }).then((e) => { - // reject(e) - // }) } }) .catch((error) => { diff --git a/app/frontend/src/common/components/Auth.vue b/app/frontend/src/common/components/Auth.vue index 507b7ddb9..12b2a7c20 100644 --- a/app/frontend/src/common/components/Auth.vue +++ b/app/frontend/src/common/components/Auth.vue @@ -41,9 +41,7 @@ export default { this.keycloak.init({ checkLoginIframe: false }).then(() => { - console.log(".then after button click") this.keycloak.login({ idpHint: this.config.sso_idp_hint }).then((authenticated) => { - console.log("after login") if (authenticated) { ApiService.authHeader('JWT', this.keycloak.token) if (window.localStorage) { diff --git a/app/frontend/src/common/store/auth.js b/app/frontend/src/common/store/auth.js index 78279cf7b..0036055e4 100644 --- a/app/frontend/src/common/store/auth.js +++ b/app/frontend/src/common/store/auth.js @@ -11,7 +11,6 @@ const auth = { }, getters: { keycloak (state) { - console.log("state keycloak", state.keycloak) return state.keycloak }, userRoles (state) { diff --git a/app/frontend/vue.config.js b/app/frontend/vue.config.js index a47a1122a..a1c3b91cd 100644 --- a/app/frontend/vue.config.js +++ b/app/frontend/vue.config.js @@ -8,21 +8,11 @@ module.exports = { publicPath: process.env.NODE_ENV === 'production' ? '/gwells/' : '/', configureWebpack: { resolve: { - extensions: ['.mjs', '.js', '.vue', '.json'], alias: { moment: 'moment/src/moment', lodash: 'lodash-es' } }, - module: { - rules: [ - { - test: /\.mjs$/, // Target .mjs files - include: /node_modules/, // Include node_modules (where Keycloak might reside) - type: 'javascript/auto' // Treat .mjs as a JavaScript module - } - ] - }, devServer: { watchOptions: { ignored: /node_modules/,