Skip to content

Commit a22e0aa

Browse files
authored
fix: 修复不同页签之间认证共享问题 (#559)
1 parent a03a2e8 commit a22e0aa

File tree

5 files changed

+29
-5
lines changed

5 files changed

+29
-5
lines changed

ui/src/stores/modules/application.ts

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,14 @@ const useApplicationStore = defineStore({
6565
applicationApi
6666
.postAppAuthentication(token, loading)
6767
.then((res) => {
68-
sessionStorage.setItem('accessToken', res.data)
68+
const accessTokenObjStr = localStorage.getItem('accessTokenObj')
69+
if (accessTokenObjStr) {
70+
const accessTokenObj = JSON.parse(accessTokenObjStr)
71+
accessTokenObj[token] = res.data
72+
localStorage.setItem('accessTokenObj', JSON.stringify(accessTokenObj))
73+
} else {
74+
localStorage.setItem('accessTokenObj', JSON.stringify({ [token]: res.data }))
75+
}
6976
resolve(res)
7077
})
7178
.catch((error) => {

ui/src/stores/modules/user.ts

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ export interface userStateTypes {
77
userInfo: User | null
88
token: any
99
version?: string
10+
accessToken?: string
1011
}
1112

1213
const useUserStore = defineStore({
@@ -15,16 +16,26 @@ const useUserStore = defineStore({
1516
userType: 1,
1617
userInfo: null,
1718
token: '',
18-
version: ''
19+
version: '',
20+
accessToken: ''
1921
}),
2022
actions: {
2123
getToken(): String | null {
2224
if (this.token) {
2325
return this.token
2426
}
25-
return this.userType === 1
26-
? localStorage.getItem('token')
27-
: sessionStorage.getItem('accessToken')
27+
return this.userType === 1 ? localStorage.getItem('token') : this.getAccessToken()
28+
},
29+
getAccessToken() {
30+
const accessTokenObjStr = localStorage.getItem('accessTokenObj')
31+
if (accessTokenObjStr && this.accessToken) {
32+
const accessTokenObj = JSON.parse(accessTokenObjStr)
33+
const result = accessTokenObj[this.accessToken]
34+
if (result) {
35+
return result
36+
}
37+
}
38+
return null
2839
},
2940

3041
getPermissions() {
@@ -44,6 +55,9 @@ const useUserStore = defineStore({
4455
changeUserType(num: number) {
4556
this.userType = num
4657
},
58+
setAccessToken(accessToken: string) {
59+
this.accessToken = accessToken
60+
},
4761

4862
async asyncGetVersion() {
4963
return UserApi.getVersion().then((ok) => {

ui/src/views/chat/base/index.vue

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ function getProfile() {
5454
5555
onMounted(() => {
5656
user.changeUserType(2)
57+
user.setAccessToken(accessToken)
5758
getAccessToken(accessToken)
5859
})
5960
</script>

ui/src/views/chat/embed/index.vue

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -199,6 +199,7 @@ function refresh(id: string) {
199199
200200
onMounted(() => {
201201
user.changeUserType(2)
202+
user.setAccessToken(accessToken)
202203
getAccessToken(accessToken)
203204
})
204205
</script>

ui/src/views/chat/pc/index.vue

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -286,6 +286,7 @@ async function exportHTML(): Promise<void> {
286286
287287
onMounted(() => {
288288
user.changeUserType(2)
289+
user.setAccessToken(accessToken)
289290
getAccessToken(accessToken)
290291
})
291292
</script>

0 commit comments

Comments
 (0)