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) })