fix: 修复不同页签之间认证共享问题 (#559)

This commit is contained in:
shaohuzhang1 2024-05-27 18:16:42 +08:00 committed by GitHub
parent a03a2e88fd
commit a22e0aaec2
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 29 additions and 5 deletions

View File

@ -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) => {

View File

@ -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) => {

View File

@ -54,6 +54,7 @@ function getProfile() {
onMounted(() => {
user.changeUserType(2)
user.setAccessToken(accessToken)
getAccessToken(accessToken)
})
</script>

View File

@ -199,6 +199,7 @@ function refresh(id: string) {
onMounted(() => {
user.changeUserType(2)
user.setAccessToken(accessToken)
getAccessToken(accessToken)
})
</script>

View File

@ -286,6 +286,7 @@ async function exportHTML(): Promise<void> {
onMounted(() => {
user.changeUserType(2)
user.setAccessToken(accessToken)
getAccessToken(accessToken)
})
</script>