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,因此一并清空:
session与account(认证会话、OAuth 关联)todosdevice_tokenssubscription(权益快照)payment(订单记录)
设计说明
- 身份只来自服务端。 路由使用
authedRoute,被删除的永远是当前 Session 的账户——没有用户 ID 参数。 - 未启用 Better Auth 的
delete-user端点。 第二条公开删除路径会绕过 文件清理和级联保证;只保留一条路径才能保证清理完整。 - 原生客户端携带 Bearer Session 调用该端点,然后清理 Keychain 与本地 状态。
- 删除账户不会取消 App Store 订阅——Apple 的扣费关系存在于用户与 Apple 之间。 本地快照行会被删除;请提示用户先在 Apple 的订阅设置中取消。
