Skip to content

Commit 86c33e1

Browse files
committed
【功能优化】WebSocket 使用 refreshToken 认证,解决无法刷新访问令牌的问题
1 parent 40512af commit 86c33e1

File tree

2 files changed

+8
-4
lines changed

2 files changed

+8
-4
lines changed

src/views/infra/webSocket/index.vue

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,15 +71,17 @@
7171
<script lang="ts" setup>
7272
import { formatDate } from '@/utils/formatTime'
7373
import { useWebSocket } from '@vueuse/core'
74-
import { getAccessToken } from '@/utils/auth'
74+
import { getRefreshToken } from '@/utils/auth'
7575
import * as UserApi from '@/api/system/user'
7676
7777
defineOptions({ name: 'InfraWebSocket' })
7878
7979
const message = useMessage() // 消息弹窗
8080
8181
const server = ref(
82-
(import.meta.env.VITE_BASE_URL + '/infra/ws').replace('http', 'ws') + '?token=' + getAccessToken()
82+
(import.meta.env.VITE_BASE_URL + '/infra/ws').replace('http', 'ws') +
83+
'?token=' +
84+
getRefreshToken() // 使用 getRefreshToken() 方法,而不使用 getAccessToken() 方法的原因:WebSocket 无法方便的刷新访问令牌
8385
) // WebSocket 服务地址
8486
const getIsOpen = computed(() => status.value === 'OPEN') // WebSocket 连接是否打开
8587
const getTagColor = computed(() => (getIsOpen.value ? 'success' : 'red')) // WebSocket 连接的展示颜色

src/views/mall/promotion/kefu/index.vue

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
import { KeFuConversationList, KeFuMessageList, MemberBrowsingHistory } from './components'
2626
import { WebSocketMessageTypeConstants } from './components/tools/constants'
2727
import { KeFuConversationRespVO } from '@/api/mall/promotion/kefu/conversation'
28-
import { getAccessToken } from '@/utils/auth'
28+
import { getRefreshToken } from '@/utils/auth'
2929
import { useWebSocket } from '@vueuse/core'
3030
3131
defineOptions({ name: 'KeFu' })
@@ -34,7 +34,9 @@ const message = useMessage() // 消息弹窗
3434
3535
// ======================= WebSocket start =======================
3636
const server = ref(
37-
(import.meta.env.VITE_BASE_URL + '/infra/ws').replace('http', 'ws') + '?token=' + getAccessToken()
37+
(import.meta.env.VITE_BASE_URL + '/infra/ws').replace('http', 'ws') +
38+
'?token=' +
39+
getRefreshToken() // 使用 getRefreshToken() 方法,而不使用 getAccessToken() 方法的原因:WebSocket 无法方便的刷新访问令牌
3840
) // WebSocket 服务地址
3941
4042
/** 发起 WebSocket 连接 */

0 commit comments

Comments
 (0)