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

View File

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

View File

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

View File

@ -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>

View File

@ -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>