fix: Token conflict issue between two different applications embedded in the same system(#2753)

This commit is contained in:
wangdan-fit2cloud 2025-04-01 16:19:13 +08:00 committed by GitHub
parent 0e98c7783b
commit 081fcab7eb
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 11 additions and 9 deletions

View File

@ -97,8 +97,8 @@ const useApplicationStore = defineStore({
applicationApi
.postAppAuthentication(token, loading, authentication_value)
.then((res) => {
localStorage.setItem('accessToken', res.data)
sessionStorage.setItem('accessToken', res.data)
localStorage.setItem(`${token}accessToken`, res.data)
sessionStorage.setItem(`${token}accessToken`, res.data)
resolve(res)
})
.catch((error) => {

View File

@ -13,7 +13,7 @@ export interface userStateTypes {
userInfo: User | null
token: any
version?: string
accessToken?: string
userAccessToken?: string
XPACK_LICENSE_IS_VALID: false
isXPack: false
themeInfo: any
@ -26,6 +26,7 @@ const useUserStore = defineStore({
userInfo: null,
token: '',
version: '',
userAccessToken: '',
XPACK_LICENSE_IS_VALID: false,
isXPack: false,
themeInfo: null
@ -60,11 +61,11 @@ const useUserStore = defineStore({
return this.userType === 1 ? localStorage.getItem('token') : this.getAccessToken()
},
getAccessToken() {
const accessToken = sessionStorage.getItem('accessToken')
if (accessToken) {
return accessToken
const token = sessionStorage.getItem(`${this.userAccessToken}accessToken`)
if (token) {
return token
}
return localStorage.getItem('accessToken')
return localStorage.getItem(`${this.userAccessToken}accessToken`)
},
getPermissions() {
@ -83,8 +84,9 @@ const useUserStore = defineStore({
return ''
}
},
changeUserType(num: number) {
changeUserType(num: number, token?: string) {
this.userType = num
this.userAccessToken = token
},
async asyncGetProfile() {

View File

@ -92,7 +92,7 @@ function getAccessToken(token: string) {
})
}
onBeforeMount(() => {
user.changeUserType(2)
user.changeUserType(2, accessToken)
Promise.all([user.asyncGetProfile(), getAccessToken(accessToken)])
.catch(() => {
applicationAvailable.value = false