fix: 修复不同页签之间认证共享问题 (#559)
This commit is contained in:
parent
a03a2e88fd
commit
a22e0aaec2
@ -65,7 +65,14 @@ const useApplicationStore = defineStore({
|
|||||||
applicationApi
|
applicationApi
|
||||||
.postAppAuthentication(token, loading)
|
.postAppAuthentication(token, loading)
|
||||||
.then((res) => {
|
.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)
|
resolve(res)
|
||||||
})
|
})
|
||||||
.catch((error) => {
|
.catch((error) => {
|
||||||
|
|||||||
@ -7,6 +7,7 @@ export interface userStateTypes {
|
|||||||
userInfo: User | null
|
userInfo: User | null
|
||||||
token: any
|
token: any
|
||||||
version?: string
|
version?: string
|
||||||
|
accessToken?: string
|
||||||
}
|
}
|
||||||
|
|
||||||
const useUserStore = defineStore({
|
const useUserStore = defineStore({
|
||||||
@ -15,16 +16,26 @@ const useUserStore = defineStore({
|
|||||||
userType: 1,
|
userType: 1,
|
||||||
userInfo: null,
|
userInfo: null,
|
||||||
token: '',
|
token: '',
|
||||||
version: ''
|
version: '',
|
||||||
|
accessToken: ''
|
||||||
}),
|
}),
|
||||||
actions: {
|
actions: {
|
||||||
getToken(): String | null {
|
getToken(): String | null {
|
||||||
if (this.token) {
|
if (this.token) {
|
||||||
return this.token
|
return this.token
|
||||||
}
|
}
|
||||||
return this.userType === 1
|
return this.userType === 1 ? localStorage.getItem('token') : this.getAccessToken()
|
||||||
? localStorage.getItem('token')
|
},
|
||||||
: sessionStorage.getItem('accessToken')
|
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() {
|
getPermissions() {
|
||||||
@ -44,6 +55,9 @@ const useUserStore = defineStore({
|
|||||||
changeUserType(num: number) {
|
changeUserType(num: number) {
|
||||||
this.userType = num
|
this.userType = num
|
||||||
},
|
},
|
||||||
|
setAccessToken(accessToken: string) {
|
||||||
|
this.accessToken = accessToken
|
||||||
|
},
|
||||||
|
|
||||||
async asyncGetVersion() {
|
async asyncGetVersion() {
|
||||||
return UserApi.getVersion().then((ok) => {
|
return UserApi.getVersion().then((ok) => {
|
||||||
|
|||||||
@ -54,6 +54,7 @@ function getProfile() {
|
|||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
user.changeUserType(2)
|
user.changeUserType(2)
|
||||||
|
user.setAccessToken(accessToken)
|
||||||
getAccessToken(accessToken)
|
getAccessToken(accessToken)
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@ -199,6 +199,7 @@ function refresh(id: string) {
|
|||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
user.changeUserType(2)
|
user.changeUserType(2)
|
||||||
|
user.setAccessToken(accessToken)
|
||||||
getAccessToken(accessToken)
|
getAccessToken(accessToken)
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@ -286,6 +286,7 @@ async function exportHTML(): Promise<void> {
|
|||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
user.changeUserType(2)
|
user.changeUserType(2)
|
||||||
|
user.setAccessToken(accessToken)
|
||||||
getAccessToken(accessToken)
|
getAccessToken(accessToken)
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user