Django短信验证码-容联云通信短信平台

python编程快速上手(持续更新中…)

python实战项目(Django技术点)


1、容联云短信平台-注册

A/注册:(默认8元,1分钱/条)
在这里插入图片描述
B/绑定测试号码
在这里插入图片描述
C/导入包yuntongxin

D/修改sms.py 3处主要信息
在这里插入图片描述
E/修改测试手机号
在这里插入图片描述
F/修改路径

#测试的时候使用
from libs.yuntongxun.CCPRestSDK import REST

2、业务分析

在这里插入图片描述
1.为了避免用户使用图形验证码恶意测试,我们提取了图形验证码后,立即删除Redis中的图形验证码。
2.保存短信验证码是为注册做准备的。
3.Django不具备发送短信的功能,所以我们借助第三方的容联云通讯短信平台来帮助我们发送短信验证码。

3、短信验证码后端分析

在这里插入图片描述

4、代码实现

class SmsCodeView(View):

    def get(self, request, mobile):
        # 1. 获取请求参数
        image_code = request.GET.get('image_code')
        uuid = request.GET.get('image_code_id')
        # 2. 验证参数
        if not all([image_code, uuid]):
            return JsonResponse({'code': 400, 'errmsg': '参数不全'})
        # 3. 验证图片验证码
        # 3.1 连接redis
        from django_redis import get_redis_connection
        redis_cli = get_redis_connection('default')
        # 3.2 获取redis数据
        redis_image_code = redis_cli.get(uuid)
        if redis_image_code is None:
            return JsonResponse({'code': 400, 'errmsg': '图片验证码已过期'})
        # 3.3 对比
        if redis_image_code.decode().lower() != image_code.lower():
            return JsonResponse({'code': 400, 'errmsg': '图片验证码错误'})
        # 4. 生成短信验证码
        from random import randint
        sms_code = '%06d' % randint(0, 999999)
        # 5. 保存短信验证码
        redis_cli.setex(mobile, 300, sms_code)
        # 6. 发送短信验证码
        from libs.yuntongxun.sms import CCP
        CCP().send_template_sms(mobile, [sms_code, 5], 1)
        # 7. 返回响应
        return JsonResponse({'code': 0, 'errmsg': 'ok'})

5.限制频繁验证

A/业务分析
在这里插入图片描述
B/添加标志位

C/ 添加验证

if(response.data == 400){
    this.error_sms_code_message = response.data.errmsg;
    this.error_sms_code = true;
}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值