3d1e8969e6
- 新增 docs/integrations/(README + jiguang/sms/meituan/pangle/wxpay 各一篇): 记录各 SDK 集成的签名/验签/加解密/协议细节与踩坑(对齐 app/integrations 分层) - docs/api 接口文档变薄: 受影响接口头部加「集成实现」链接,把验签/RSA/CPS 签名 等重逻辑描述移到集成文档;ad-pangle-callback 验签段精简为指针 - docs/api/README 补架构说明(api 薄 / 重逻辑在 integrations) - 后端技术实现.md 目录树补全(福利/钱包/签到/省钱/发奖端点 + crud/integrations 现状), pangle/wxpay 标注移入 integrations - ad_reward_golive_checklist 路径同步 core→integrations Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
1.4 KiB
1.4 KiB
短信验证码(sms)
文件:
app/integrations/sms.py| 关联接口:auth-sms-send · auth-sms-login | ← 集成索引
作用
手机号 + 验证码登录的验证码发送 / 校验。当前是 mock 模式(占坑),未接真实短信供应商。
函数 / 异常
| 函数 | 行为 |
|---|---|
send_code(phone) -> int |
mock 下不真发、只 log;返回距下次可发的秒数。进程内存表 _last_sent 记 phone → 发送时间,SMS_SEND_INTERVAL_SEC 内再发抛 SmsError(发送过频)。真供应商未接时抛 SmsError("sms provider not configured") |
verify_code(phone, code) -> bool |
mock 下任意 6 位数字均通过(配合前台 demo);真模式未实现返回 False |
异常 SmsError |
发送过频 / 验证码不对,api 层 catch 后翻成 4xx(过频 429) |
配置
| 配置项 | 说明 |
|---|---|
SMS_MOCK |
是否 mock(当前 true) |
SMS_SEND_INTERVAL_SEC |
同号两次发送最小间隔(防过频) |
后续(接真实供应商时)
send_code()改调供应商 API(阿里云 / 腾讯云),把生成的 6 位码存 cache(redis / sqlite)。verify_code()比对 cache 里的码,且验过即作废。- 进程内存方案占坑期够用;切真实供应商时一并切 redis(多进程/多机时内存表不共享,频控会失效)。