H0:iOS 对接阻断修复(P0)
目标
修复当前后端中阻碍 iOS 真实接口对接的安全与功能缺陷。在 H0 完成之前,不允许启动真实 iOS 接口联调。
背景
经 iOS 端对接可行性审计发现,当前 api-server 存在以下阻断性问题:
- Apple 登录 mock fallback:生产环境 APPLE_BUNDLE_ID 缺失时退回 mock,任意长度 ≥4 的字符串即可登录
/internal/*无认证暴露:7 个内部端点可直接访问文档原文、写入 chunks/candidates、劫持导入作业- 用户禁用后 JWT 仍有效:JwtAuthGuard 不检查用户状态
- Refresh Token 刷新不检查用户状态:禁用/删除用户仍可刷新 token
- 用户 JWT 与 Admin JWT 密钥混用:未彻底隔离
- iOS 核心接口 @Body() any:import/source/learning-session 缺少 DTO 校验
- CI/CD 硬编码生产数据库密码
Issue 清单
- H0-01 修复 Apple 登录 mock fallback
- H0-02 为 /internal/* 增加 InternalAuthGuard
- H0-03 JwtAuthGuard 增加用户状态检查
- H0-04 Refresh Token 刷新时检查用户状态
- H0-05 用户 JWT 和 Admin JWT 密钥彻底隔离
- H0-06 补齐 iOS 核心流程 DTO(import / source / learning-session)
- H0-07 修复后跑核心 CAPI E2E + 输出 iOS 对接文档
验收标准
- Apple 登录真实验证 identityToken,不再接受 mock
- /internal/* 全部受 InternalAuthGuard 保护
- 禁用/删除用户不能访问 /api/* 和刷新 token
- user token 与 admin token 完全隔离
- import/source/learning-session 有完整 DTO + ValidationPipe
- 核心 CAPI E2E 全部通过
- 输出 iOS 对接文档
禁止事项
- 禁止在 H0 未完成前启动真实 iOS 接口联调
- 禁止绕过安全修复直接给 iOS 端发接口
- CI/CD 密码必须迁移到 Secret 并轮换
No due date
90% Completed