账户删除
Sudomimus 用户可以随时通过 with.sudomimus.com 的隐私视图永久删除账户。本页面向已经集成 Sudomimus 的应用开发者,说明账户删除后应用会看到什么,以及应当如何处理。
面向用户的流程本身——包括确认步骤与政策文本——属于 隐私政策 的一部分。
应用会看到什么
Section titled “应用会看到什么”在准入和刷新阶段,已删除账户的处理方式与停用账户类似。两者使用不同的错误符号,而且删除状态不可逆。
| 调用时机 | 收到的错误 | HTTP / OIDC 映射 |
|---|---|---|
Connect POST /redeem |
AccountDeleted |
403 Forbidden |
Session API POST /refresh |
AccountDeleted |
403 Forbidden |
Native API POST /direct-issue/steam-ticket |
AccountDeleted |
403 Forbidden |
Native API POST /direct-issue/access-key |
AccountDeleted |
403 Forbidden |
Session GET /userinfo 或 GET /claim-state |
invalid_token |
401 Unauthorized |
Session POST /introspect |
status: "revoked" |
200 OK |
OIDC API POST /token(auth-code) |
invalid_grant — “Account is deleted” |
400 |
OIDC API POST /token(refresh-token) |
invalid_grant — “Account is deleted” |
400 |
OIDC API GET /userinfo |
invalid_token — “Account is deleted” |
401 |
AccountDeleted 是 AccountDisabled 的永久版本。已经签发的访问令牌在 exp 之前仍可能通过离线签名和过期时间校验,但 Sudomimus 的实时端点会拒绝它,或把会话报告为已撤销。应用看到上述任一结果后,都应立即结束本地会话。
如何处理 AccountDeleted
Section titled “如何处理 AccountDeleted”处理方式与 AccountDisabled 基本相同,但有一处重要区别:不要显示「账户已暂停,请联系支持」之类的提示。账户删除是用户主动执行的操作,应用应清除本地会话,并在用户需要时引导其重新注册。
简单的处理流程:
flowchart TD
Deleted["POST /refresh 失败<br/>AccountDeleted"] --> Clear["清除本地 access cookie<br/>和 SDK 状态"]
Clear --> SignedOut["显示已登出页面"]
SignedOut -. 可选 .-> SignUp["提供重新注册入口<br/>发起全新的 POST /establish 流程"]
应用不应执行以下操作:
- 不要重试——该符号是终态,不是瞬态错误。
- 不要替用户自动重建账户。重新注册必须是用户的主动行为。
- 不要假设用户此前的数据可以延续。即使使用同一邮箱重新注册,应用看到的也是全新的
subject(扇区主体,sector subject),与旧账户没有历史关联。
独自拥有仍在运行的组织会阻塞删除
Section titled “独自拥有仍在运行的组织会阻塞删除”应用与扇区归组织所有,不属于某个个人。只要用户是某个组织的唯一活跃 OWNER,且该组织仍有运行中的资源,就无法删除账户。
- 当你是某个组织的唯一活跃
OWNER,且它仍有已启用应用或尚未停用的扇区时,该组织会阻塞删除。下线这些资源即可解除阻塞。 - 如果组织中还有另一位活跃
OWNER可以继续管理资源,就不会阻塞删除。 - 资源已全部停用的组织从不阻塞;删除时它会直接变为无主状态。
删除尝试会以 AccountOwnsLiveOrganizations 失败(映射为 HTTP 409 Conflict);响应会带上阻塞的组织的 anchor,供产品内流程精确列出需要下线的对象。
因此,通往删除的完整路径是一条「先下线、后删除」的级联:在每一个你独自拥有的组织中,先停用每个应用,再停用此时已清空的每个扇区(此时已被允许,因为它们的应用都已停用),最后才删除账户。(你也可以顺带停用该组织本身,但这对删除并非必需。)
这是有意为之。组织——以及它所拥有的应用与扇区——是承载着其他人数据的基础设施,因此 Sudomimus 不会作为某位开发者删除个人账户的副作用而静默销毁它。如果你独自拥有一个仍有存活资源的组织并计划关闭账户,请先为它安排一个下线步骤。
重新注册的语义
Section titled “重新注册的语义”删除后再次注册会得到一个全新账户,即使使用同一邮箱也一样。应用会看到新的扇区主体;偏好、登录方式、声明授权和会话都不会延续。
从应用视角看,这与全新用户没有区别。以 subject 为主键的本地数据存储应将新旧账户视为互不相关。
- 管理会话 — 不删除账户的情况下结束会话所用的
/logout与/revoke-all。 - 隐私控制 —— 面向用户的标识轮换与账户抹除控制。
- 隐私政策 — 删除你的账户 — 同一规则面向用户的说明。