From 9d86e0a8f696eb82ebff9d77b5fff2fcb5b95d88 Mon Sep 17 00:00:00 2001 From: Florent Lavelle <flavelle@neogeo.fr> Date: Wed, 24 May 2023 13:35:03 +0000 Subject: [PATCH] Add VUE_APP_EXTERNAL_LOGOUT_URL + VUE_APP_EXTERNAL_LOGOUT_METHOD --- .gitlab-ci.yml | 2 ++ README.md | 2 ++ src/store/modules/sign-out.store.js | 19 ++++++++++++------- 3 files changed, 16 insertions(+), 7 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index f1a3b16..c3fc471 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -53,6 +53,8 @@ build_development: VUE_APP_USERGROUP_API_PATH=/fr/usergroup/\n VUE_APP_EXTERNAL_LOGIN=true\n VUE_APP_EXTERNAL_LOGIN_URL=http://127.0.0.1:80/oidc/authenticate\n + VUE_APP_EXTERNAL_LOGOUT_URL=http://127.0.0.1:80/oidc/logout/?redirect_uri=/fr/login/signout\n + VUE_APP_EXTERNAL_LOGOUT_METHOD=get\n VUE_APP_EXTERNAL_LOGIN_LABEL=Se connecter avec mon compte FooBar\n " > .env - npm run build diff --git a/README.md b/README.md index cfd96dd..d007612 100644 --- a/README.md +++ b/README.md @@ -46,6 +46,8 @@ VUE_APP_LOGIN_API_PASSWORD=CHANGE_ME # External auth VUE_APP_EXTERNAL_LOGIN=true VUE_APP_EXTERNAL_LOGIN_URL=http://127.0.0.1/oidc/authenticate +VUE_APP_EXTERNAL_LOGOUT_URL=http://127.0.0.1/oidc/logout/?redirect_uri=/fr/login/signout +VUE_APP_EXTERNAL_LOGOUT_METHOD=get VUE_APP_EXTERNAL_LOGIN_LABEL=Connect with... ``` diff --git a/src/store/modules/sign-out.store.js b/src/store/modules/sign-out.store.js index b60d81a..9618e38 100644 --- a/src/store/modules/sign-out.store.js +++ b/src/store/modules/sign-out.store.js @@ -1,5 +1,6 @@ import client from '@/api/loginAPI.js'; import i18n from '@/i18n'; +import axios from 'axios'; const state = { logged: null, @@ -9,11 +10,17 @@ const state = { const getters = { }; -export const GET_SIGNOUT = 'GET_SIGNOUT'; const actions = { - [GET_SIGNOUT]: async ({ commit }) => { - await client.signOut() + GET_SIGNOUT: async ({ commit }) => { + const EXTERNAL_LOGOUT_URL = process.env.VUE_APP_EXTERNAL_LOGOUT_URL; + const EXTERNAL_LOGOUT_METHOD = process.env.VUE_APP_EXTERNAL_LOGOUT_METHOD; + Promise.all([ + client.signOut(), + EXTERNAL_LOGOUT_URL ? + axios[EXTERNAL_LOGOUT_METHOD ? EXTERNAL_LOGOUT_METHOD : 'get'](EXTERNAL_LOGOUT_URL) : + null + ]) .then( () => { commit('SET_ERROR', undefined); @@ -33,18 +40,16 @@ const actions = { }, }; -export const SET_ERROR = 'SET_ERROR'; -export const SET_LOGGED = 'SET_LOGGED'; const mutations = { - [SET_LOGGED]: (state, value) => { + SET_LOGGED: (state, value) => { if (value === true) { state.logged = true; } else { state.logged = false; } }, - [SET_ERROR]: (state, payload) => { + SET_ERROR: (state, payload) => { state.error = payload; }, }; -- GitLab