diff --git a/electron-vue-template/src/renderer/App.vue b/electron-vue-template/src/renderer/App.vue index 73001b8..7a5b58f 100644 --- a/electron-vue-template/src/renderer/App.vue +++ b/electron-vue-template/src/renderer/App.vue @@ -109,21 +109,16 @@ function handleMenuSelect(key: string) { addToHistory(key) } -async function handleLoginSuccess(data: { token: string; user: any }) { +async function handleLoginSuccess(data: { token: string; permissions?: string }) { isAuthenticated.value = true showAuthDialog.value = false try { - currentUsername.value = data?.user?.username || currentUsername.value - userPermissions.value = data?.permissions || data?.user?.permissions || '' - } catch {} - - // 登录成功后自动注册设备 - 简化版 - try { - const username = data?.user?.username || currentUsername.value - if (username) { + const username = getUsernameFromToken(data.token) + currentUsername.value = username + userPermissions.value = data?.permissions || '' + // 登录成功后自动注册设备 await deviceApi.register({ username }) - } } catch (e) { // 设备注册失败不影响登录流程,静默处理 console.warn('设备注册失败:', e) @@ -205,11 +200,9 @@ function getClientIdFromToken(token?: string) { } function getUsernameFromToken(token?: string) { - try { const t = token || localStorage.getItem('token') || '' const payload = JSON.parse(atob(t.split('.')[1] || '')) return payload.username || '' - } catch { return '' } } async function openDeviceManager() {