手机短信验证

手机验证接口

from rest_framework.views import APIView
from .models import User
from utils.response import APIResponse
import re
# 注册逻辑:1.校验手机号是否存在 2.发送验证码 3.完成注册
class MobileAPIView(APIView):
    def post(self, request, *args, **kwargs):
        mobile = request.data.get('mobile')
        if not mobile or not re.match(r'^1[3-9]\d{9}$', mobile):
            return APIResponse(1, '数据有误')
        try:
            User.objects.get(mobile=mobile)
            return APIResponse(2, '已注册')
        except:
            return APIResponse(0, '未注册')

 发送短信接口

# 发送验证码接口分析
from libs import txsms
from django.core.cache import cache
class SMSAPIView(APIView):
    def post(self, request, *args, **kwargs):
        # 1)拿到前台的手机号
        mobile = request.data.get('mobile')
        if not mobile or not re.match(r'^1[3-9]\d{9}$', mobile):
            return APIResponse(2, '数据有误')
        # 2)调用txsms生成手机验证码
        code = txsms.get_code()
        # 3)调用txsms发送手机验证码
        result = txsms.send_sms(mobile, code, 5)
        # 4)失败反馈信息给前台
        if not result:
            return APIResponse(1, '短信发送失败')
        # 5)成功服务器缓存手机验证码 - 用缓存存储(方便管理) - redis
        cache.set('sms_%s' % mobile, code, 5 * 60)
        # 6)反馈成功信息给前台
        return APIResponse(0, '短信发送成功')

猜你喜欢

转载自www.cnblogs.com/komorebi/p/11768520.html