Files
shaguabijia-app-server/docs/integrations/sms.md
T
OuYingJun1024 3d1e8969e6 docs: 新建 docs/integrations 集成层文档 + api 文档变薄
- 新增 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>
2026-05-27 20:45:12 +08:00

1.4 KiB
Raw Blame History

短信验证码(sms

文件:app/integrations/sms.py | 关联接口:auth-sms-send · auth-sms-login | ← 集成索引

作用

手机号 + 验证码登录的验证码发送 / 校验。当前是 mock 模式(占坑),未接真实短信供应商。

函数 / 异常

函数 行为
send_code(phone) -> int mock 下不真发、只 log;返回距下次可发的秒数。进程内存表 _last_sentphone → 发送时间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 位码存 cacheredis / sqlite)。
  • verify_code() 比对 cache 里的码,且验过即作废
  • 进程内存方案占坑期够用;切真实供应商时一并切 redis(多进程/多机时内存表不共享,频控会失效)。