退出需清理本地敏感数据
别名: 退出清缓存 · token wipe · 本地凭证清除
概念解释
点了退出若只把界面换成登录页,令牌、草稿里的身份证号、WebView cookie、下载的对账单仍留在磁盘上,下一用户或下一应用就能读。清理本地敏感数据指本机退出时删除会话凭证,并清除以该身份写下的可识别缓存与文件,直到再登录才能重建。这条管退出的副作用是否干净,不管按钮好不好找,也不管共享设备上要不要先提醒你去点它。切换到另一账号时的串味是另一组隔离问题。
机制
应用为了秒开,把令牌和最近内容放进本地存储。退出若只改内存里的「当前用户」标记,冷启动仍会用磁盘上的刷新令牌静默登回,退出变成动画。敏感数据不只是 token:搜索历史、消息预览、自动填充的表单、证书与 cookie 罐、应用组共享容器,都会在「已退出」之后被系统搜索或文件 App 翻出。清理范围过窄(只清内存)和过宽(把未登录也可看的公开缓存当敏感)都会失败。标准是:未登录的人拿起这台设备,不能读到上一身份的可识别内容,也不能不经认证再进账号。
怎么研究
在退出前后对本地存储做差分:钥匙串、数据库、WebView、共享容器、下载目录,并尝试冷启动是否自动登回。
自变量:退出实现(只清内存、清 token 留内容、token 与身份数据都清)、是否有「记住账号」只保留非敏感标识。 因变量:冷启动是否仍登录、能否在文件里搜到上一用户的姓名或证件号、WebView 是否仍带着登录 cookie。
自动化测试应作为发布门槛,实验室访谈测不到磁盘残留。不要把「界面是登录页」当清理成功。保留「上次用的邮箱」作为非敏感标识可以,但不得保留头像原图里的可识别场景或未读消息正文。
边界
「记住我」若被实现成长期刷新令牌,它就不是退出,而是延长会话;真正退出必须能关掉它。离线草稿若用户未选择导出,退出时要提示将丢失或先导出,不能既声称已退出又把草稿明文留着。操作系统级的通知扩展、手表、车机伴侣应用有独立存储,只清手机进程不够。企业设备的退出可能被 MDM 禁止清某些容器,需在文案里写清仍残留什么,而不是假装干净。
怎么落地
- 退出时吊销并删除本机访问/刷新令牌,清除该身份写入的数据库、cookie、下载的对账与证件影像;公开的只读缓存可留。
- 允许保留非敏感的上次标识(邮箱或手机号掩码)以便下次填登录框;头像缩略图若含可识别面孔则不要留。
- 伴侣表面(手表、小组件、通知扩展)一并收到退出并清各自缓存,失败时在本机提示「其它设备可能仍显示内容」。
- 验证:退出后杀进程再开,应停在登录且用旧 token 调接口失败。在系统文件搜索上一用户的姓名、订单号、证件字段,应无命中。用 WebView 打开曾登录的页,应不再处于登录态。