7 Commits

Author SHA1 Message Date
Abner
49be510892 feat(simyo): 支持登录 MFA 双路径并统一会话守卫
新用户默认 MFA 时经 v2 verifyOTP 换正式会话;老用户未开启 MFA 时跳过步骤 2。
补齐 v2 代理、5 步 UI、i18n 与单元测试,抽取 requireSessionToken 避免业务接口遗漏守卫。
2026-07-22 21:12:59 +08:00
Abner
f41b21ab02 📝 docs: 规范 Simyo 测试注释表述
统一测试文件中的客户端身份与请求头相关描述。
2026-07-22 19:26:13 +08:00
Abner
4c8ab4b916 📝 docs: 规范 Simyo 客户端与接口注释表述
将注释与测试描述改为中性技术说明,仅保留接口路径与配置语义。
2026-07-22 19:26:13 +08:00
Abner
0a70ce47cb feat(simyo): 完善 eSIM 更换流程(仅 EMAIL)
- 修 handleApiResponse:登录/查询体无 result.success 时正确判定成功
- 设备更换:先 GET settings/simcard,再 POST EMAIL 申请;等待验证码时跳过重复下单
- 登录识别 mfaStatus,未关闭 MFA 时明确阻断
- bad session 单独文案;UA 更新为 iOS 18.2 / iPhone12,8
2026-07-22 19:26:12 +08:00
Abner
704d385d8a feat(simyo): 将 HTTP 426 等错误映射为用户可读文案
避免界面直接展示「HTTP 426」「missing X-Device-ID」等原始信息,
按状态码与已知业务短语输出中英文友好提示。
2026-07-22 19:26:12 +08:00
Abner
2bbe2f9bc4 ♻️ refactor(simyo): 统一客户端版本与 User-Agent 配置
抽取 client-identity 作为版本、设备型号与 User-Agent 的单一事实来源;
本地与 Netlify 代理强制使用配置的 User-Agent,不再透传浏览器 UA。
2026-07-22 19:26:12 +08:00
Abner
5a65dd3d01 🐛 fix(simyo): 补齐请求头 X-Device-ID
Simyo 4.28+ 要求每个请求携带 UUID 形态的 X-Device-ID,
缺失会返回 400 missing X-Device-ID。前端生成并持久化设备 ID,
本地与代理同步转发该请求头,并将上游 API 路径切换为 webapi。
2026-07-22 19:26:12 +08:00