You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Django中保存模型到数据库前发送OTP完成验证

Django OTP验证场景适配解答

django-otp 适配性说明

django-otp完全可以满足你的使用需求,它的核心能力是OTP的生成、校验、过期管理,默认绑定用户身份认证只是官方提供的常用场景封装,你完全可以单独调用它的核心模块适配本次的Transaction创建验证场景,不需要用到它的用户认证相关逻辑。

其他可选库推荐

  • django-simple-otp:更轻量的OTP工具库,没有内置和Django用户系统的强绑定逻辑,原生支持自定义存储后端(session/Redis等都可),针对单次业务操作验证的场景适配成本更低
  • django-otp-twilio:django-otp官方推出的扩展包,已经封装好了Twilio短信发送逻辑,如果你用Twilio作为短信服务商可以直接调用,减少代码量,如果是国内短信服务商则不需要使用

推荐实现流程

不管你选用哪个OTP库,核心流程建议按如下逻辑实现,规避数据安全问题:

  1. 用户点击创建Transaction按钮后,前端提交完整的Transaction参数到临时接口,不要直接执行模型save操作
  2. 后台生成OTP,将OTP密文、过期时间、序列化后的待保存Transaction数据绑定存储到session或者Redis中,同时调用短信服务商接口给指定手机号发送OTP明文
  3. 前端弹出OTP输入框,用户输入后提交到验证接口,后台取出缓存的OTP密文做校验
  4. 校验通过则将缓存的Transaction数据反序列化后写入正式数据库,同时删除对应缓存;校验失败直接返回错误,超过重试次数则直接作废本次请求的缓存数据

内容的提问来源于stack exchange,提问作者David.B

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 00:09:02