From 2a4efe082860b0cd36154650aa87fd3e654e89a9 Mon Sep 17 00:00:00 2001 From: hailin Date: Mon, 15 Dec 2025 06:07:23 -0800 Subject: [PATCH] =?UTF-8?q?fix(frontend):=20=E4=BF=AE=E5=A4=8D=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E6=96=B0=E8=B4=A6=E5=8F=B7=E6=97=B6=E6=97=A7=E7=8A=B6?= =?UTF-8?q?=E6=80=81=E6=9C=AA=E6=B8=85=E9=99=A4=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 问题: logoutCurrentAccount() 方法只清除了 5 个状态,导致添加新账号时 旧账号的钱包地址、助记词备份状态等仍然存在,影响新账号创建/导入流程。 修复: 现在清除全部 16 个账号相关状态: - Token: accessToken, refreshToken - 账号信息: userSerialNum, username, avatarSvg, avatarUrl, referralCode, inviterSequence, isAccountCreated - 钱包信息: walletAddressBsc, walletAddressKava, walletAddressDst, mnemonic, isWalletReady, isMnemonicBackedUp 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- .../core/services/multi_account_service.dart | 36 ++++++++++++++----- 1 file changed, 27 insertions(+), 9 deletions(-) diff --git a/frontend/mobile-app/lib/core/services/multi_account_service.dart b/frontend/mobile-app/lib/core/services/multi_account_service.dart index 39e0eac0..c34c84bb 100644 --- a/frontend/mobile-app/lib/core/services/multi_account_service.dart +++ b/frontend/mobile-app/lib/core/services/multi_account_service.dart @@ -233,19 +233,37 @@ class MultiAccountService { // 保存当前账号数据 await saveCurrentAccountData(); - // 清除当前会话的 Token(但保留在账号存储中) - await _secureStorage.delete(key: StorageKeys.accessToken); - await _secureStorage.delete(key: StorageKeys.refreshToken); - // 清除当前账号标记 await setCurrentAccountId(null); - // 清除当前账号信息(但不删除账号列表) - await _secureStorage.delete(key: StorageKeys.userSerialNum); - await _secureStorage.delete(key: StorageKeys.username); - await _secureStorage.delete(key: StorageKeys.isAccountCreated); + // 清除所有当前账号相关的状态(但不删除账号列表) + // 这样新账号创建/导入时不会受到旧状态影响 + final keysToClear = [ + // Token + StorageKeys.accessToken, + StorageKeys.refreshToken, + // 账号信息 + StorageKeys.userSerialNum, + StorageKeys.username, + StorageKeys.avatarSvg, + StorageKeys.avatarUrl, + StorageKeys.referralCode, + StorageKeys.inviterSequence, + StorageKeys.isAccountCreated, + // 钱包信息 + StorageKeys.walletAddressBsc, + StorageKeys.walletAddressKava, + StorageKeys.walletAddressDst, + StorageKeys.mnemonic, + StorageKeys.isWalletReady, + StorageKeys.isMnemonicBackedUp, + ]; - debugPrint('$_tag logoutCurrentAccount() - 退出完成'); + for (final key in keysToClear) { + await _secureStorage.delete(key: key); + } + + debugPrint('$_tag logoutCurrentAccount() - 退出完成,已清除 ${keysToClear.length} 个状态'); } /// 完全删除账号(包括所有数据)