django 에서 핸드폰 인증 코드 를 보 내 는 예시 코드
1.사용 자 는 프로젝트 전단 에 핸드폰 번 호 를 입력 한 다음 에[인증 코드 획득]을 클릭 하여 핸드폰 번 호 를 post 로 보 냅 니 다.
2.배경 에서 핸드폰 번호 가 합 법 적 인지,점용 되 었 는 지 확인 하고,인증 을 통과 하면 인증 번 호 를 생 성하 고,스 크 립 트 를 실행 하여 문자 운영 자가 이 핸드폰 번호 로 이 인증 번 호 를 보 내 도록 하고,인증 을 통과 하지 않 으 면 오류 메 시 지 를 되 돌려 줍 니 다.
3.사용자 가 문자 인증 번 호 를 받 은 후에 모든 정 보 를 백 스테이지 에 다시 게시 합 니 다.
4.백 스테이지 에서 각 데 이 터 를 검증 하고 검증 을 통과 하면 실명 제 인증 을 완료 하 며 통과 하지 않 으 면 오류 정 보 를 되 돌려 줍 니 다.
총괄,실명 검증 1 회,ajax+post 2 회 필요
2.도 킹 메 신 저:
1.구름 그물 끝 에서:
1.구름 그물 등록
주소
백그라운드 관리 콘 솔 페이지:그 중에서 가장 중요 한 정 보 는 APIKEY 입 니 다.
2.개발 자 등록,서명 추가,템 플 릿 추가(템 플 릿 관리)
1.클 라 우 드 스크린 백 스테이지[테스트]는 의미 가 없다.테스트 란 바로 핸드폰 에 문자 메 시 지 를 보 내 는 것 이다.이게 무슨 테스트 야?
2.[서명/템 플 릿 장치]페이지,[서명 관리]를 클릭 하면[추가 서명]을 보완 하 라 는 알림 을 받 습 니 다.인증 은 개발 자의[회사]와[개인]으로 나 뉘 는데 지금 은 개발 테스트 단계 입 니 다.먼저[개인],[개인]신분증 을 원 하 는 사진 을 선택 하여 사진 을 제출 할 수 있 습 니 다.
3.인증 이 완 료 된 문자 통 지 를 기다 린 다음 에 백 스테이지 의 작업 안내 에 따라[서명 관리]페이지[서명 추가],[템 플 릿 관리]페이지[템 플 릿 추가]에서 모두 클 라 우 드 네트워크 의 심 사 를 기 다 려 야 한다.심 사 를 통과 하면 문자 알림 이 있다.
4.클 라 우 드 스크린 백 스테이지 에 ip 화이트 리스트 를 설정 하고 외부 네트워크 ip 을 화이트 리스트 에 추가
이 컴퓨터 의 외부 네트워크 ip 를 얻 는 가장 간단 한 방법 은 바로 바 이 두 ip 이다.
2.django 프로젝트 에 문자 보 내 는 스 크 립 트 쓰기
프로젝트 디 렉 터 리 에 utils 디 렉 터 리 를 새로 만 듭 니 다.yunpian.py
import requests
class YunPian(object):
def __init__(self,api_key):
self.api_key=api_key
self.single_send_url='https://sms.yunpian.com/v2/sms/single_send.json'
def send_sms(self,code,mobile):
parmas={
'apikey':self.api_key,
'mobile':mobile,
'text':'【** 】 [code]。 , '.format(code=code)
}
#text , !
r=requests.post(self.single_send_url,data=parmas)
print(r)
if __name__=='__main__':
yun_pian=YunPian('***************( apikey)')
yun_pian.send_sms('***( )','*******( )')
3.프로젝트 에 핸드폰 인증번호 와 관련 된 코드 를 적 습 니 다.1.전단 관련 코드:
<!-- -->
<script type="text/javascript">
var countdown=60;
function settime(obj) {
if (countdown == 0) {
obj.removeAttribute("disabled");
obj.value=" ";
countdown = 60;
return;
} else {
obj.setAttribute("disabled", true);
obj.value=" (" + countdown + ")";
countdown--;
}
setTimeout(function() {
settime(obj) }
,1000)
}
</script>
<!-- -->
<div class="form-group">
<label for="mobile" class="col-lg-2 col-sm-2 control-label"> :</label>
<div class="col-lg-10">
<div class="input-group m-bot15">
<input type="text" class="form-control" id="mobile" name="mobile" placeholder=" ">
<span class="input-group-btn">
<input type="button" id="forcode" onclick="settime(this)" value=" " class="btn btn-success">
</span>
</div>
<p class="help-block"> </p>
</div>
</div>
<!-- ajax -->
<script>
$('#forcode').click(function () {
$.ajax({
cache:false,
type:"POST",
url:"{% url 'users:forcode' %}",
data:{
csrfmiddlewaretoken:$('[name="csrfmiddlewaretoken"]').val(),
mobile:$("#mobile").val()
},
async:true,
success:function (data) {
alert(data)
}
})
})
</script>
효과 그림:2.users/views.py 에 인증번호 보 내기 관련 코드 쓰기:
import re
import random
from xyw.settings import APIKEY
from .models import VerifyCode
class ForCodeView(View):
""" """
def post(self,request):
mobile=request.POST.get('mobile','')
if mobile:
#
mobile_pat=re.compile('^(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 에 코드 추가:
# apikey
APIKEY=‘ apikey'
이로써 휴대 전화 인증번호 발송 기능 이 완료 됐다.사실 최적화 할 수 있 는 부분도 있다.
1.전단 에 60 초 를 설정 해 야 다시 보 낼 수 있 지만 이 인증 은 백 엔 드 에 도 있어 야 합 니 다.
2.핸드폰 번호 가 이미 인증번호 가 발송 되 었 는 지 검증 하지 않 았 음
3.인증 코드 는 수명 주기 가 없 으 므 로 일정 시간 마다 인증 코드 를 무효 화해 야 합 니 다.
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Django의 질문 및 답변 웹사이트환영 친구, 이것은 우리의 새로운 블로그입니다. 이 블로그에서는 , 과 같은 Question-n-Answer 웹사이트를 만들고 있습니다. 이 웹사이트는 회원가입 및 로그인이 가능합니다. 로그인 후 사용자는 사용자의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.