From c65c7407975bc959bebc01ca0f7ad7ff66486cc1 Mon Sep 17 00:00:00 2001 From: Dawn <2439646234@qq.com> Date: Sun, 18 Jan 2026 02:00:19 +0800 Subject: [PATCH] fix(logout): :bug: skip token validation during logout to prevent error loops --- src-tauri/src/im_request_client.rs | 7 +++++++ src/mobile/views/my/MobileSettings.vue | 2 -- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src-tauri/src/im_request_client.rs b/src-tauri/src/im_request_client.rs index 399a9655..ec0cf90b 100644 --- a/src-tauri/src/im_request_client.rs +++ b/src-tauri/src/im_request_client.rs @@ -108,6 +108,7 @@ impl ImRequestClient { ) -> Result, anyhow::Error> { let mut retry_count = 0; const MAX_RETRY_COUNT: u8 = 2; + let is_logout = path == ImUrl::Logout.get_url().1; loop { // 使用 build_request 构建请求 @@ -127,6 +128,9 @@ impl ImRequestClient { match result.code { Some(406) => { + if is_logout { + return Ok(result); + } if retry_count >= MAX_RETRY_COUNT { return Err(anyhow::anyhow!("token过期,刷新token失败")); } @@ -135,6 +139,9 @@ impl ImRequestClient { continue; } Some(401) => { + if is_logout { + return Ok(result); + } error!( "{}; 方法: {}; 失败信息: {}", &url, diff --git a/src/mobile/views/my/MobileSettings.vue b/src/mobile/views/my/MobileSettings.vue index a819c49a..902cb52d 100644 --- a/src/mobile/views/my/MobileSettings.vue +++ b/src/mobile/views/my/MobileSettings.vue @@ -150,8 +150,6 @@ async function handleLogout() { logoutSuccess = true } catch (error) { console.error('服务器登出失败:', error) - // 即使服务器登出失败,也继续执行本地清理,但给出警告 - window.$message.warning('服务器登出失败,但本地登录状态已清除') } // 无论服务器登出是否成功,都执行本地状态清理