From a22e0aaec2816ad3049104e2e0ed3c6aa340d95d Mon Sep 17 00:00:00 2001 From: shaohuzhang1 <80892890+shaohuzhang1@users.noreply.github.com> Date: Mon, 27 May 2024 18:16:42 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E4=B8=8D=E5=90=8C?= =?UTF-8?q?=E9=A1=B5=E7=AD=BE=E4=B9=8B=E9=97=B4=E8=AE=A4=E8=AF=81=E5=85=B1?= =?UTF-8?q?=E4=BA=AB=E9=97=AE=E9=A2=98=20(#559)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ui/src/stores/modules/application.ts | 9 ++++++++- ui/src/stores/modules/user.ts | 22 ++++++++++++++++++---- ui/src/views/chat/base/index.vue | 1 + ui/src/views/chat/embed/index.vue | 1 + ui/src/views/chat/pc/index.vue | 1 + 5 files changed, 29 insertions(+), 5 deletions(-) diff --git a/ui/src/stores/modules/application.ts b/ui/src/stores/modules/application.ts index bb37a17c3..bdd713d55 100644 --- a/ui/src/stores/modules/application.ts +++ b/ui/src/stores/modules/application.ts @@ -65,7 +65,14 @@ const useApplicationStore = defineStore({ applicationApi .postAppAuthentication(token, loading) .then((res) => { - sessionStorage.setItem('accessToken', res.data) + const accessTokenObjStr = localStorage.getItem('accessTokenObj') + if (accessTokenObjStr) { + const accessTokenObj = JSON.parse(accessTokenObjStr) + accessTokenObj[token] = res.data + localStorage.setItem('accessTokenObj', JSON.stringify(accessTokenObj)) + } else { + localStorage.setItem('accessTokenObj', JSON.stringify({ [token]: res.data })) + } resolve(res) }) .catch((error) => { diff --git a/ui/src/stores/modules/user.ts b/ui/src/stores/modules/user.ts index ac47a7974..3541179aa 100644 --- a/ui/src/stores/modules/user.ts +++ b/ui/src/stores/modules/user.ts @@ -7,6 +7,7 @@ export interface userStateTypes { userInfo: User | null token: any version?: string + accessToken?: string } const useUserStore = defineStore({ @@ -15,16 +16,26 @@ const useUserStore = defineStore({ userType: 1, userInfo: null, token: '', - version: '' + version: '', + accessToken: '' }), actions: { getToken(): String | null { if (this.token) { return this.token } - return this.userType === 1 - ? localStorage.getItem('token') - : sessionStorage.getItem('accessToken') + return this.userType === 1 ? localStorage.getItem('token') : this.getAccessToken() + }, + getAccessToken() { + const accessTokenObjStr = localStorage.getItem('accessTokenObj') + if (accessTokenObjStr && this.accessToken) { + const accessTokenObj = JSON.parse(accessTokenObjStr) + const result = accessTokenObj[this.accessToken] + if (result) { + return result + } + } + return null }, getPermissions() { @@ -44,6 +55,9 @@ const useUserStore = defineStore({ changeUserType(num: number) { this.userType = num }, + setAccessToken(accessToken: string) { + this.accessToken = accessToken + }, async asyncGetVersion() { return UserApi.getVersion().then((ok) => { diff --git a/ui/src/views/chat/base/index.vue b/ui/src/views/chat/base/index.vue index ff14368a1..fcb58568b 100644 --- a/ui/src/views/chat/base/index.vue +++ b/ui/src/views/chat/base/index.vue @@ -54,6 +54,7 @@ function getProfile() { onMounted(() => { user.changeUserType(2) + user.setAccessToken(accessToken) getAccessToken(accessToken) }) diff --git a/ui/src/views/chat/embed/index.vue b/ui/src/views/chat/embed/index.vue index c53abbc17..572a2a916 100644 --- a/ui/src/views/chat/embed/index.vue +++ b/ui/src/views/chat/embed/index.vue @@ -199,6 +199,7 @@ function refresh(id: string) { onMounted(() => { user.changeUserType(2) + user.setAccessToken(accessToken) getAccessToken(accessToken) }) diff --git a/ui/src/views/chat/pc/index.vue b/ui/src/views/chat/pc/index.vue index 1b0570321..5b6d0af1a 100644 --- a/ui/src/views/chat/pc/index.vue +++ b/ui/src/views/chat/pc/index.vue @@ -286,6 +286,7 @@ async function exportHTML(): Promise { onMounted(() => { user.changeUserType(2) + user.setAccessToken(accessToken) getAccessToken(accessToken) })