feat(api): add client app service endpoints

This commit is contained in:
david
2026-07-30 18:04:34 +08:00
parent 47d352b22e
commit 550efb3812
29 changed files with 2147 additions and 44 deletions

View File

@@ -99,3 +99,12 @@
- PostgreSQL 至少每日全量、持续 WAL 归档并定期演练恢复;安全事件、订单和资金数据定义更严格 RPO/RTO。
- 对象存储启用版本/生命周期策略,合同和安全证据按合规期限留存;备份不得绕开数据加密和访问控制。
- 关键服务多实例部署MQTT、数据库、消息队列和对象存储须有明确高可用方案和故障演练计划。
## 6. 移动 Client API 安全实施约定
- 用户端和工作人员端分别使用 `user_app``service_app` JWT client claim服务端逐请求校验 client、账户启用状态、岗位、组织和对象归属。
- 验证码由 `/auth/verification-code` 创建Redis 保存五分钟、验证成功即删除,并按手机号及来源 IP 限流;响应只返回请求 `identity` 和有效期。开发 Mock 验证码从 `Global` 配置读取,生产必须关闭。
- 银行卡号、身份证号、预留手机号使用 `Global.FieldEncryptionKey` 经 HKDF 派生独立 AES-GCM 加密键和 HMAC 指纹键;接口列表只返回末四位掩码。开发占位密钥不得用于生产。
- 支付密码独立于登录密码,仅允许六位数字,使用 bcrypt 保存;连续失败达到阈值后在 Redis 短时锁定。绑卡、解绑、余额支付和提现均要求支付密码或限定用途的一次性验证码。
- 公共上传接口 `/upload/file` 必须携带平台、气站、配送点、用户或工作人员任一合法 JWT图片/PDF 最大 10MB视频上限从配置读取。上传只返回资源 URI业务接口负责建立关联并记录操作者、采集与接收时间。
- 充值、支付、提现、工单证据、轨迹点、内容确认等写入均携带幂等号;资金入账在数据库事务内锁定钱包并同时写不可变流水。