退出、授权撤销与删除账号
登录接入完成的标准不只是“能进首页”,还包括身份失效、用户删除和切换账号后数据是否正确。
用你的前端经验理解
业务退出类似注销 session;撤销第三方授权类似解绑身份提供方;删除账号是数据生命周期操作。三者不可互相替代。
为什么需要它
退出登录、Apple 授权撤销和删除业务账号是不同动作。退出主要终止本机或指定业务会话;撤销改变第三方授权关系;删除账号涉及服务端数据及其关联资源。把三者都实现为清空本地 token,会留下远端数据、活跃会话和难以解释的再次登录行为。
它是怎样工作的
账号删除需要明确确认、必要的身份再验证以及可恢复的执行流程。服务端清理可能横跨数据库、对象存储和外部授权,失败不能被一个成功弹窗掩盖。订阅管理也独立于账号删除:删除业务资料并不自动代表 App Store 订阅已经取消,界面必须清楚说明并提供相应管理入口。
把关键概念连起来
退出与切换
清除本账号的会话和内存状态,按产品策略隔离本地数据库。不要让账号 B 看到账号 A 缓存;离线时无法完成服务端动作要明确反馈。
授权与通知
按场景使用 credential state 检查、授权撤销通知与服务端事件,处理 revoked、notFound、transferred 等状态,不把上次登录成功缓存成永久事实。
删除与解绑
用户创建账号的应用应按当前审核规则提供账号删除入口;删除流程处理业务数据、服务端会话、Apple 令牌撤销及用户说明。删除账号不自动取消 App Store 订阅,要引导管理订阅。
订阅用户删除账号
先说明数据删除范围和当前订阅情况,提供系统订阅管理入口;验证用户操作后执行账号删除与适用的 Apple 授权撤销。流程结果分别报告,不把一种结果当成另一种已完成。
用户请求删除阅读账户
- 展示将删除的业务数据及影响,让用户确认后端实际收到的是当前已认证账号,而非客户端随意传入的 user ID。
- 后端执行幂等删除流程、撤销对应授权或会话,并记录必要且符合策略的结果状态;中断后允许查询或重试。
- 确认完成后清理本地账号缓存与凭证,切换到退出状态;不能继续向旧账号空间上传离线变更。
这里需要你亲自判断
不要把删除本地 Keychain 条目显示成“云端账号已删除”;也不要承诺删账号会同时注销系统 Apple 账号或自动取消付费订阅。
做一个小练习
给设置页设计四个入口:退出登录、同步状态、管理订阅、删除账号,并写出各自真正改变的对象。
- 分别写出退出、撤销、删除对本机凭证、远端资料和订阅的影响。
- 在删除中途模拟失败,设计用户如何知道状态并继续处理。
展开参考思路与验收标准
删除请求已接收与删除已完成可以是不同状态。账号切换必须隔离本地缓存和待同步队列,避免下一位用户看到或上传前一位的数据。