diff --git a/ui/src/stores/modules/application.ts b/ui/src/stores/modules/application.ts index bb37a17c..bdd713d5 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 ac47a797..3541179a 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 ff14368a..fcb58568 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 c53abbc1..572a2a91 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 1b057032..5b6d0af1 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) })