rwadurian/frontend/mobile-app/lib
hailin 8bafb0a8d4 fix(mobile-app): 增加切换账号全局防护,彻底解决切换期间自动退出登录
根因:切换账号时 saveCurrentAccountData() 耗时 ~7 秒,期间定时器仍在发 API 请求,
clear 阶段 token 被删除后 in-flight 请求收到 401 → 触发 tokenExpired →
logoutCurrentAccount() 把刚恢复的新账号数据全部擦除。

修复(两层防护):
1. 全局锁 isSwitchingAccount:MultiAccountService 在 switchToAccount 整个过程中
   设为 true,app.dart _handleTokenExpired 检测到该标志直接 return,不执行 logout
2. 定时器提前停止:将定时器停止从 onBeforeRestore(save 之后)移到 switchToAccount
   调用之前,确保 save 期间无新 API 请求
3. try/finally 保证标志位必定清除,异常情况不会锁死后续 tokenExpired 事件

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 12:41:45 -08:00
..
core fix(mobile-app): 增加切换账号全局防护,彻底解决切换期间自动退出登录 2026-02-26 12:41:45 -08:00
features fix(mobile-app): 增加切换账号全局防护,彻底解决切换期间自动退出登录 2026-02-26 12:41:45 -08:00
routes feat(pricing): 预种每份价格从 3171 调整为 3566 绿积分 2026-02-26 08:02:17 -08:00
app.dart fix(mobile-app): 增加切换账号全局防护,彻底解决切换期间自动退出登录 2026-02-26 12:41:45 -08:00
bootstrap.dart fix(sentry): 修复 Flutter 代码分析错误 2025-12-15 11:04:28 -08:00
main.dart refactor(mpc-system): migrate to party-driven architecture with PartyID-based routing 2025-12-05 08:11:28 -08:00