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} 个状态'); } /// 完全删除账号(包括所有数据)