1.6 KiB
1.6 KiB
创作中心退出登录私有缓存清理修复 2026-04-25
问题
点击退出登录后,页面未刷新时仍能切到创作中心,并看到上一位登录用户的作品。刷新页面后才恢复正常。
根因
AuthGate的退出动作先等待/api/auth/logout完成,再通过全局鉴权事件重新 hydrate,期间前端 context 仍可能暴露旧用户。- 平台创作入口里的 RPG works 会在
canReadProtectedData=false时清空,但大鱼吃小鱼与拼图 works 是PlatformEntryFlowShellImpl内部 state,没有在退出登录时同步清空。 - 创作 Tab 会保持挂载以降低闪烁,因此私有作品数组只要留在内存里,就会继续被货架组件渲染。
修复口径
- 用户触发退出当前设备或退出全部设备时,前端必须先本地收回
user / canAccessProtectedData,再等待后端吊销会话。 canReadProtectedData从true变为未登录态false时,创作中心必须清空所有私有作品缓存:- RPG works / library 由
useRpgEntryBootstrap清空。 - Big Fish works、Puzzle works 由
PlatformEntryFlowShellImpl清空。 - 当前创作工作区、结果页、删除忙碌态与生成态一并复位。
- RPG works / library 由
- 公开广场与分类数据不受影响,仍按匿名公开接口读取。
验收
- 点击退出登录后,不刷新页面进入创作 Tab,只能看到空作品货架,不再出现上一账号作品。
- 退出登录瞬间
AuthUiContext.user为null,canAccessProtectedData=false。 - 重新登录后按新账号重新拉取作品列表,不复用旧账号内存缓存。