一、流程分析:
1.用户在项目前端,输入手机号,然后点击【获取验证码】,将手机号发到post到后台。
2.后台验证手机号是否合法,是否已被占用,如果通过验证,则生成验证码,并通过运行脚本,让短信运营商向该手机号,发送该验证码,如果没通过验证,则返回错误信息
3.用户收到短信验证码以后,再次将所有信息post到后台。
4.后台验证各个数据,通过验证则完成实名制认证,如果没通过则返回错误信息。
总结,一次实名验证,需要两次ajax+post
二、对接短信商:
1.在云片网端:
1.注册云片网
地址:https://pile('^(13\d|14[5|7]|15\d|166|17\d|18\d)\d{8}$') res=re.search(mobile_pat,mobile) if res: #生成手机验证码 code=VerifyCode() code.mobile=mobile c=random.randint(1000,9999) code.code=str(c) code.save() code=VerifyCode.objects.filter(mobile=mobile).first().code yunpian=YunPian(APIKEY) sms_status=yunpian.send_sms(code=code,mobile=mobile) msg=sms_status.msg return HttpResponse(msg) else: msg='请输入有效手机号码!' return HttpResponse(msg) else: msg='手机号不能为空!' return HttpResponse(msg)
3.在users/urls.py中:
from .views import ForCodeView......urlpatterns = [ ...... path('forcode/',ForCodeView.as_view(),name='forcode'),]4.在settings.py中增加代码:
#云片网apikeyAPIKEY=‘你云片网的apikey'至此,完成了发送手机验证码功能。
其实也有可以优化的地方:
1.虽然前端设置了60秒才可以重新发送,但是这个验证在后端也应该有,以防被有心人利用。
2.没有验证手机号码是否已经被发送过验证码
3.验证码没有生命周期,应该各一段时间让验证码失效
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。