Unified Platform Host

账户删除

一个端点删除用户,并级联清理其名下的全部数据。

账户删除是单一的已鉴权端点:先删除用户的存储文件,再删除用户行本身,由 数据库级联清空账户名下的一切。这是唯一的删除路径——不存在第二条只删一半 的方式。

DELETE /api/app/v1/account
→ { "success": true, "data": { "deleted": true } }

删除的内容

src/server/app/account/accountService.ts 分两步执行:

上传的文件

删除对象存储中该用户前缀(uploads/<userId>/)下的全部对象——文件是数据库 级联唯一够不到的东西。如果存储清理失败,删除仍会继续,失败会记入日志供 人工清扫,因此存储故障不会阻塞账户删除。

用户行 + 级联

删除 Better Auth 的 user 行。所有归属表都以 ON DELETE CASCADE 引用 user.id,因此一并清空:

  • sessionaccount(认证会话、OAuth 关联)
  • todos
  • device_tokens
  • subscription(权益快照)
  • payment(订单记录)

设计说明

  • 身份只来自服务端。 路由使用 authedRoute,被删除的永远是当前 Session 的账户——没有用户 ID 参数。
  • 未启用 Better Auth 的 delete-user 端点。 第二条公开删除路径会绕过 文件清理和级联保证;只保留一条路径才能保证清理完整。
  • 原生客户端携带 Bearer Session 调用该端点,然后清理 Keychain 与本地 状态。
  • 删除账户不会取消 App Store 订阅——Apple 的扣费关系存在于用户与 Apple 之间。 本地快照行会被删除;请提示用户先在 Apple 的订阅设置中取消。

相关页面

本页目录