From c1356fa7ab25b4d2934342a96e4894a28460cd25 Mon Sep 17 00:00:00 2001 From: ZiJIe <17738440858@163.com> Date: Mon, 22 Sep 2025 15:18:19 +0800 Subject: [PATCH] 1 --- electron-vue-template/src/renderer/App.vue | 44 ++++++++++++++++++---- 1 file changed, 37 insertions(+), 7 deletions(-) diff --git a/electron-vue-template/src/renderer/App.vue b/electron-vue-template/src/renderer/App.vue index 71a39d0..03b3aea 100644 --- a/electron-vue-template/src/renderer/App.vue +++ b/electron-vue-template/src/renderer/App.vue @@ -212,8 +212,13 @@ function getClientIdFromToken(token?: string) { try { const t = token || localStorage.getItem('token') || '' const payload = JSON.parse(atob(t.split('.')[1] || '')) - return payload.clientId || '' - } catch { return '' } + const clientId = payload.clientId || '' + console.log('从token解析clientId:', { token: t?.substring(0, 20) + '...', clientId }) + return clientId + } catch (e) { + console.warn('解析token中的clientId失败:', e) + return '' + } } function getUsernameFromToken(token?: string) { @@ -247,14 +252,27 @@ const SSEManager = { const src = new EventSource(`${sseUrl}?clientId=${clientId}&token=${token}`) this.connection = src - console.log('SSE连接已建立:', sseUrl) - src.onopen = () => console.log('SSE连接打开') + console.log('SSE连接详情:', { + url: sseUrl, + clientId, + token: token.substring(0, 20) + '...', + fullUrl: `${sseUrl}?clientId=${clientId}&token=${token.substring(0, 20)}...` + }) + + src.onopen = () => { + console.log('✅ SSE连接已成功打开') + console.log('连接状态:', src.readyState) // 0=CONNECTING, 1=OPEN, 2=CLOSED + } + src.onmessage = (e) => { - console.log('SSE收到消息:', e.data) + console.log('📨 SSE收到原始消息:', e) + console.log('消息数据:', e.data) this.handleMessage(e) } + src.onerror = (e) => { - console.log('SSE连接错误:', e) + console.error('❌ SSE连接错误:', e) + console.log('连接状态:', src.readyState) this.handleError() } } catch (e) { @@ -265,17 +283,29 @@ const SSEManager = { handleMessage(e: MessageEvent) { try { const payload = JSON.parse(e.data) + console.log('SSE消息解析:', payload) + switch (payload.type) { case 'DEVICE_REMOVED': + console.log('收到设备移除事件,正在执行logout') + logout() + ElMessage.warning('您的设备已被移除,请重新登录') + break case 'FORCE_LOGOUT': + console.log('收到强制退出事件,正在执行logout') logout() ElMessage.warning('会话已失效,请重新登录') break case 'PERMISSIONS_UPDATED': + console.log('收到权限更新事件,重新检查权限') checkAuth() break + default: + console.log('收到未知SSE事件:', payload.type) } - } catch {} + } catch (err) { + console.error('SSE消息处理失败:', err) + } }, handleError() {