久久福利_99r_国产日韩在线视频_直接看av的网站_中文欧美日韩_久久一

您的位置:首頁技術文章
文章詳情頁

vue_drf實現(xiàn)短信驗證碼

瀏覽:73日期:2022-09-28 11:08:18
目錄一、需求1,需求二、sdk參數(shù)配置1,目錄結構三、代碼實現(xiàn)1,后端代碼2,前端代碼一、需求1,需求

我們在做網(wǎng)站開發(fā)時,登錄頁面很多情況下是可以用手機號接收短信驗證碼,然后實現(xiàn)登錄的,那我們今天就來做一做這一功能。

vue_drf實現(xiàn)短信驗證碼

偽代碼:

進入登錄頁面,點擊短信登錄輸入手機號碼,點擊獲取驗證碼,后端在redis里保存驗證碼用戶把手機收到的驗證碼輸入,點擊登錄,會把手機號和驗證碼發(fā)往后端,然后進行驗證

要想發(fā)送短信,讓用戶收到短信,我們的借助一個容聯(lián)云的接口,注冊一個賬號。

vue_drf實現(xiàn)短信驗證碼

使用時需要的一些參數(shù):

vue_drf實現(xiàn)短信驗證碼

下載sdk

1.。。。。。。。

vue_drf實現(xiàn)短信驗證碼

2.。。。。。。

vue_drf實現(xiàn)短信驗證碼

3.。。。。。。。

vue_drf實現(xiàn)短信驗證碼

下載完成后,解壓。放入我們drf項目的apps里的libs里

二、sdk參數(shù)配置1,目錄結構

vue_drf實現(xiàn)短信驗證碼

2,配置sms.py文件

# -*- coding:utf-8 -*-from .CCPRestSDK import REST# 說明:主賬號,登陸云通訊網(wǎng)站后,可在'控制臺-應用'中看到開發(fā)者主賬號ACCOUNT SID_accountSid = ’xxxxxxxxxxxxx’# 8a216da863f8e6c20164139687e80c1b# 說明:主賬號Token,登陸云通訊網(wǎng)站后,可在控制臺-應用中看到開發(fā)者主賬號AUTH TOKEN_accountToken = ’xxxxxxxxxxxxx’# 6dd01b2b60104b3dbc88b2b74158bac6# 請使用管理控制臺首頁的APPID或自己創(chuàng)建應用的APPID_appId = ’8aaf0708697b6beb01699f3c645f1766’# 8a216da863f8e6c20164139688400c21# 說明:請求地址,生產環(huán)境配置成app.cloopen.com_serverIP = ’sandboxapp.cloopen.com’# 說明:請求端口 ,生產環(huán)境為8883_serverPort = '8883'# 說明:REST API版本號保持不變_softVersion = ’2013-12-26’#下面的內容不用修改class CCP(object): '''發(fā)送短信的輔助類''' def __new__(cls, *args, **kwargs):# 判斷是否存在類屬性_instance,_instance是類CCP的唯一對象,即單例if not hasattr(CCP, '_instance'): cls._instance = super(CCP, cls).__new__(cls, *args, **kwargs) cls._instance.rest = REST(_serverIP, _serverPort, _softVersion) cls._instance.rest.setAccount(_accountSid, _accountToken) cls._instance.rest.setAppId(_appId)return cls._instance def send_template_sms(self, to, datas, temp_id):'''發(fā)送模板短信'''# @param to 手機號碼# @param datas 內容數(shù)據(jù) 格式為數(shù)組 例如:{’12’,’34’},如不需替換請?zhí)?’’# @param temp_id 模板Idresult = self.rest.sendTemplateSMS(to, datas, temp_id)# 如果云通訊發(fā)送短信成功,返回的字典數(shù)據(jù)result中statuCode字段的值為'000000'if result.get('statusCode') == '000000': # 返回0 表示發(fā)送短信成功 return 0else: # 返回-1 表示發(fā)送失敗 return -1if __name__ == ’__main__’: ccp = CCP() # 注意: 測試的短信模板編號為1 ccp.send_template_sms(’15914397060’, [’1234’, 5], 1)三、代碼實現(xiàn)1,后端代碼

views.py,這是獲取驗證碼請求的處理,也就是后端產生一個隨機碼,發(fā)送給手機用戶,然后把隨機碼存儲于redis中,然后給前端返回一個驗證碼發(fā)送成功的信號

from .models import Userfrom rest_framework import statusfrom lufei_drf.libs.yuntongxun.sms import CCPfrom django_redis import get_redis_connectionclass SMSCodeAPIView(APIView): def get(self,request):# 1. 通過查詢字符串獲取手機號碼phone = request.query_params.get('phone')ty=request.query_params.get(’type’)# 2. 發(fā)送短信之前驗證碼驗證一下手機號碼if ty==’register’: try:User.objects.get(phone=phone)return Response({'message': '當前手機號已經(jīng)被注冊過'}, status=status.HTTP_400_BAD_REQUEST) except:passredis = get_redis_connection('sms_code')if redis.get('times_%s' % phone): return Response({'message': '當前手機號已經(jīng)在一分鐘內發(fā)送過短信'}, status=status.HTTP_400_BAD_REQUEST)# 3. 使用手機號碼發(fā)送短信驗證碼# 生成一個短信驗證碼sms_code = '%04d' % random.randint(0, 9999)ccp = CCP()result = ccp.send_template_sms(phone,[sms_code,'5分鐘'],1)if result == 0: # 發(fā)送短信成功,保存短信驗證碼到redis數(shù)據(jù)庫中 # 開啟管道操作 pl = redis.pipeline() pl.multi() # 接下來會在管道中執(zhí)行多條命令 # setex(變量名,有效期[秒],值 ) SMS_EXPIRE_TIME = 5 * 60 # 短信驗證碼的有效期 SMS_TIMES = 60 # 短信發(fā)送的間隔時間 # 把原來立即執(zhí)行的命令放置到管道 pl.setex('sms_%s' % phone, SMS_EXPIRE_TIME, sms_code) pl.setex('times_%s' % phone, SMS_TIMES, 1) # 統(tǒng)一執(zhí)行管道中的命令 pl.execute()# 4. 響應數(shù)據(jù)給客戶端return Response({'message':result},status=status.HTTP_200_OK)

urls.py

from django.urls import path# jwt內部實現(xiàn)的登陸視圖from rest_framework_jwt.views import obtain_jwt_tokenfrom .views import SMSCodeAPIView,urlpatterns=[ path(r'login/', obtain_jwt_token ), path(’sms/’,SMSCodeAPIView.as_view()),]

utils.py,這是對用戶提交手機驗證碼后,對手機號和驗證碼的校對。判斷都正確后,返回一個對象,包括token,user信息等,

from django.contrib.auth.backends import ModelBackendfrom django_redis import get_redis_connectiondef jwt_response_payload_handler(token, user=None, request=None): ''' 自定義jwt認證成功返回數(shù)據(jù) :token 返回的jwt :user 當前登錄的用戶信息[對象] :request 當前本次客戶端提交過來的數(shù)據(jù) ''' return {’token’: token,’id’: user.id,’username’: user.username, }#實現(xiàn)多功能登錄import refrom .models import User#查找用戶名或手機號是否已經(jīng)是我們的用戶def get_user_by_account(account): ''' 根據(jù)帳號獲取user對象 :param account: 賬號,可以是用戶名,也可以是手機號 :return: User對象 或者 None ''' try:if re.match(’^1[3-9]d{9}$’, account): # 帳號為手機號 user = User.objects.get(phone=account)else: # 帳號為用戶名 user = User.objects.get(username=account) except User.DoesNotExist:return None else:return user#驗證用戶提交的短信和我們保存在redis里的信息是否一致def sms_code_verify(phone,sms_code): redis = get_redis_connection('sms_code') value=redis.get(’sms_%s’%phone).decode() if value==sms_code:return True return Falseclass UsernameMobileAuthBackend(ModelBackend): ''' 自定義用戶名或手機號認證 ''' def authenticate(self, request, username=None, password=None, **kwargs):user = get_user_by_account(username)#當密碼長度為4時,我判斷其為手機號和短信驗證碼登錄if len(password)==4 and user is not None and sms_code_verify(username,password): return userelif user is not None and user.check_password(password): return userelse: return None2,前端代碼

login組件

<template> <div id='login'> <div class='box'> <p><img src='http://www.gepszalag.com/assets/login_title.png' alt=''> </p> <p class='sign'>幫助有志向的年輕人通過努力學習獲得體面的工作和生活!</p> <div v-show='num==1'><div class='title2 cursor'> <span @click='num=1' :class='num==1 ? ’show’ :’’'>密碼登錄</span> <span @click='num=2' :class='num==2 ? ’show’ :’’'>短信登錄</span></div><input v-model='username' type='text' placeholder='用戶名 / 手機號碼'><input v-model='password' type='password' placeholder='密碼'><div class='ss'></div><div class='t1'> <div class='left'> <input type='checkbox' v-model='remenber'> <div >記住密碼</div> </div> <div class='right cursor'>忘記密碼</div></div><button @click='login1'>登錄</button><div class='register'> 沒有賬號 <span><router-link to='/register'>立即注冊</router-link></span></div> </div> <div v-show='num==2'><div class='title2 cursor'> <span @click='num=1' :class='num==1 ? ’show’ :’’'>密碼登錄</span> <span @click='num=2' :class='num==2 ? ’show’ :’’'>短信登錄</span></div><input v-model='phone' type='text' placeholder='手機號碼'><div class='sms'> <input v-model='sms_code' type='text' class='ss'> <div @click='get_sms_code'>{{content}}</div></div><button @click='sms_login'>登錄</button><div class='register'> 沒有賬號 <span><router-link to='/register'>立即注冊</router-link></span></div> </div> </div> </div></template><script> export default { name:’login’, data:function () { return {num:1,username:’’,password:’’,remenber:’’,status:’’,content:’獲取驗證碼’,phone:’’,sms_code:’’, } }, methods:{ //手機號和短信驗證碼登錄 sms_login:function(){let _this=this;this.$axios.post(’http://127.0.0.1:8000/user/login/’,{ ’username’:_this.phone, ’password’:_this.sms_code, },{responseType:’json’}) .then(function (res) { sessionStorage.token=res.data.token; _this.$router.go(-1); }).catch(function (error) { console.log(error.response)}); }, //獲取短信驗證碼 get_sms_code:function(){let reg = /1[3-9]{2}d{8}/;if( reg.test(this.phone) ){ if(this.content == '獲取驗證碼'){ this.content=60; let _this=this; let tt=setInterval(function () { if (_this.content>=1){_this.content-- } else {_this.content=’獲取驗證碼’;clearInterval(tt) } },1000); this.$axios.get(’http://127.0.0.1:8000/user/sms?type=login&phone=’+this.phone) .then(function (res) {if(res.data.message==0){ alert(’驗證碼發(fā)送成功’)} }).catch(function (error) {console.log(error.response) }) }}else { alert(’手機號碼有誤’)} }, //用戶名和密碼登錄 login1:function () {if (this.status==1){ let _this=this; this.$axios.post(’http://127.0.0.1:8000/user/login/’,{ ’username’:_this.username, ’password’:_this.password, },{responseType:’json’}) .then(function (res) { if (res.status==200){ if (_this.remenber){sessionStorage.removeItem(’token’);localStorage.token=res.data.token; } else {localStorage.removeItem(’token’);sessionStorage.token=res.data.token } _this.$router.go(-1); } else { alert(’用戶名或密碼錯誤’) } }) .catch(function (error) { alert(error.response.data.non_field_errors[0]); console.log(error.response.data.non_field_errors); });}else { alert(’驗證碼錯誤’)} }, handlerPopup:function (captchaObj) {let _this=this;captchaObj.onSuccess(function () { var validate = captchaObj.getValidate(); _this.$axios.post('http://127.0.0.1:8000/user/yzm/',{ geetest_challenge: validate.geetest_challenge, geetest_validate: validate.geetest_validate, geetest_seccode: validate.geetest_seccode,},{ responseType:'json', }).then(function (res) { _this.status=res.data.status }).catch(function (error) { console.log(error) })});captchaObj.appendTo('#captcha'); } }, created:function () { let _this=this; this.$axios.get('http://127.0.0.1:8000/user/yzm').then(function (res) { let data=JSON.parse(res.data); initGeetest({width:’350px’,gt: data.gt,challenge: data.challenge,product: 'popup',offline: !data.success }, _this.handlerPopup);}).catch(function (error) { console.log(error) }) } }</script><style scoped>#login{ background: url(’../../assets/Login.jpg’); background-size: 100% 100%; height: 100%; position: fixed; width: 100%;}.box{ width: 500px; height: 600px; margin: 0 auto; margin-top: 200px; text-align: center;}.box img{ width: 190px; height: auto;}.box p{ margin: 0;}.sign{ font-size: 18px; color: #fff; letter-spacing: .29px; padding-top: 10px; padding-bottom: 50px;}.pass{ width: 400px; height: 460px; margin: 0 auto; background-color: white; border-radius: 4px;}.messge{ width: 400px; height: 390px; margin: 0 auto; background-color: white; border-radius: 4px;}.title2{ width: 350px; font-size: 20px; color: #9b9b9b; padding-top: 50px; border-bottom: 1px solid #e6e6e6; margin: 0 auto; margin-bottom: 20px;}.ss{ width: 350px; height: 45px; border-radius: 4px; border: 1px solid #d9d9d9; text-indent: 20px; font-size: 14px; margin-bottom: 20px;}.pass .t1{ width: 350px; margin: 0 auto; height: 20px; line-height: 20px; font-size: 12px; text-align: center; position: relative;}.t1 .right{ position: absolute; right: 0;}.remenber{ display: inline-block; position: absolute; left: 20px;}.left input{ position: absolute; left:0; width: 14px; height: 14px;}.login_btn{ width: 350px; height: 45px; background: #ffc210; border-radius: 5px; font-size: 16px; color: #fff; letter-spacing: .26px; margin-top: 30px; outline: none; border:none; cursor: pointer;}.register{ margin-top: 20px; font-size: 14px; color: #9b9b9b;}.register span{ color: #ffc210; cursor: pointer;}.cursor{ cursor: pointer;}.show{ display: inline-block; padding-bottom: 5px; border-bottom: 2px solid orange; color: #4a4a4a;}a{ text-decoration: none; color: #ffc210;}#captcha{ margin: 0 auto; height: 44px;}.sms{ position: relative; width: 350px; height: 45px; margin: 0 auto; line-height: 45px;}.sms .content{ position: absolute; top:0; right: 10px; color: orange; border-left: 1px solid orange; padding-left: 10px; cursor: pointer;}</style>

前端獲取短信驗證碼:

//獲取短信驗證碼 get_sms_code:function(){let reg = /1[3-9]{2}d{8}/;//當手機號為為真實手機號,才可以觸發(fā)獲取驗證碼if( reg.test(this.phone) ){//當頁面上顯示為‘獲取驗證碼’時,才可以觸發(fā)獲取驗證碼請求;當進入倒計時,點擊不能觸發(fā)獲取驗證碼請求 if(this.content == '獲取驗證碼'){ //成功發(fā)送獲取驗證碼請求之后開始倒計時60秒 this.content=60; let _this=this; let tt=setInterval(function () { if (_this.content>=1){_this.content-- } else {_this.content=’獲取驗證碼’;clearInterval(tt) } },1000); this.$axios.get(’http://127.0.0.1:8000/user/sms?type=login&phone=’+this.phone) .then(function (res) {if(res.data.message==0){ alert(’驗證碼發(fā)送成功’)} }).catch(function (error) {console.log(error.response) }) }}else { alert(’手機號碼有誤’)} },

前端用手機號和短信驗證碼登錄:

//獲取短信驗證碼 get_sms_code:function(){let reg = /1[3-9]{2}d{8}/;//當手機號為為真實手機號,才可以觸發(fā)獲取驗證碼if( reg.test(this.phone) ){//當頁面上顯示為‘獲取驗證碼’時,才可以觸發(fā)獲取驗證碼請求;當進入倒計時,點擊不能觸發(fā)獲取驗證碼請求 if(this.content == '獲取驗證碼'){ //成功發(fā)送獲取驗證碼請求之后開始倒計時60秒 this.content=60; let _this=this; let tt=setInterval(function () { if (_this.content>=1){_this.content-- } else {_this.content=’獲取驗證碼’;clearInterval(tt) } },1000); this.$axios.get(’http://127.0.0.1:8000/user/sms?type=login&phone=’+this.phone) .then(function (res) {if(res.data.message==0){ alert(’驗證碼發(fā)送成功’)} }).catch(function (error) {console.log(error.response) }) }}else { alert(’手機號碼有誤’)} },

到此這篇關于vue_drf實現(xiàn)短信驗證碼的文章就介紹到這了,更多相關vue_drf短信驗證碼內容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持好吧啦網(wǎng)!

標簽: Vue
相關文章:
主站蜘蛛池模板: 精品无码久久久久久国产 | 国产精品无码久久久久 | 美女h在线观看 | 色无欲天天天影视综合网 | 久久久影院 | 中国黄色在线视频 | 一区二区免费在线播放 | 99精品久久久 | 男女精品 | 久草视频在线播放 | 免费黄色毛片视频 | 密室大逃脱第六季大神版在线观看 | 天天干天天操天天爽 | 国产精品三级久久久久久电影 | 午夜免费视频 | 一级a性色生活片久久毛片明星 | 中文字幕av网站 | 精品久| 色综合久 | 黄片毛片一级 | 欧美日韩精品一区二区三区蜜桃 | 国产色播| 国产成人免费 | 一级二级在线观看 | 久久久久久91 | 精品一二区| 天天拍天天草 | 日韩另类 | 久久91精品国产 | 天天综合天天色 | 中文天堂在线观看视频 | 欧美一区永久视频免费观看 | 久久草在线视频 | 成人免费看黄色 | 精品国产乱码久久久久久1区2区 | 黄色毛片在线看 | av下一页 | 夜夜超碰| 一级黄色录像在线观看 | 精品一二三区在线观看 | 国产玖玖 | 裸体的日本在线观看 | av看片网 | 欧美成年黄网站色视频 | 久久久精品一区二区三区 | 91精品国产色综合久久不卡98 | 国产二区视频 | 视频一区在线 | 精品国产乱码久久久久夜 | 一区二区三区精品 | 国产精品视频久久久 | 欧美日韩一区二区三区视频 | 欧美精品一区二区视频 | 一区二区三区四区免费观看 | 国产传媒毛片精品视频第一次 | 精品国产不卡一区二区三区 | 国产精品久久久久久妇女6080 | 亚洲精品成人久久久 | 久久se精品一区精品二区 | 香港三级日本三级a视频 | 国产在线观看一区二区 | 黑人巨大精品欧美一区二区小视频 | 国内精品久久久久国产 | 欧美在线一区二区 | 久久网一区二区三区 | 17c一起操 | 一区二区三区视频 | 亚洲黄页 | 国产97碰免费视频 | 久久久成人精品 | 国产高清在线看 | 国产伦精品一区二区三区四区视频_ | 日韩美女av在线 | 噜噜噜噜噜色 | 亚洲欧美日韩在线一区 | 亚洲伊人久久综合 | 日韩国产欧美一区 | 欧美一级免费 | 国产成人一区二区三区 | 午夜天堂精品久久久久 | 香蕉av777xxx色综合一区 | 91麻豆精品国产91久久久久久久久 | 精品999www| 亚洲精品视频在线播放 | 欧美日韩亚洲一区二区 | 亚洲国产字幕 | 欧美一区二区三区视频 | 色性网站| 亚洲精品一区在线观看 | 日韩有码在线播放 | 欧美视频在线播放 | 亚洲蜜臀av乱码久久精品蜜桃 | 每日更新亚洲 | 国产精品一区二区av | 国产激情精品一区二区三区 | 成人高清视频在线观看 | av网站观看 | 日韩在线视频中文字幕 | 91麻豆精品国产91久久久久久 | 国产精品二区一区二区aⅴ污介绍 | 欧美一区二区三区免费在线观看 | 欧美日一区二区 | 亚洲在线播放 | 日韩午夜在线视频 | 国产精品久久久久久久久久免费看 | 欧美日韩综合视频 | 狠狠狠干| 欧美另类国产 | 国产日韩欧美不卡 | 精品国产乱码久久久久久久 | 91人人看 | 国产欧美一区二区三区国产幕精品 | 精品久久中文字幕 | 欧美一区二区三区免费电影 | 成人做爰999 | 午夜影院操 | 特级毛片在线大全免费播放 | 91精品国产91综合久久蜜臀 | 精品中文字幕一区二区三区 | 在线观看亚洲a | 一区二区三区国产 | 欧美精品成人一区二区在线 | 国产高清视频在线 | 在线观看不卡一区 | 国产 日韩 欧美 中文 在线播放 | 91精品国产综合久久精品 | av高清在线免费观看 | 日本精品视频在线观看 | 可以在线观看的av网站 | 九九爱爱视频 | 国产高清精品一区二区三区 | 久久亚洲国产精品 | 欧美精品一区二区三区免费视频 | 国产精品a一区二区三区网址 | 中文字幕亚洲欧美日韩在线不卡 | a视频在线观看 | 999国产在线视频 | 亚洲综合无码一区二区 | 国产一级一级片 | 欧美日韩国产精品 | 国产片侵犯亲女视频播放 | 精品国产一区二区三区久久久蜜月 | 国产一级视频在线播放 | 中文字幕在线资源 | 自拍在线 | 午夜老湿影院 | 成人精品在线视频 | 2019天天干夜夜操 | 99re热精品视频国产免费 | 国产欧美综合一区二区三区 | 日韩在线中文字幕 | 国产成人午夜高潮毛片 | 日韩欧美在线视频观看 | 福利视频网址导航 | 日韩中文字幕a | 99re视频精品 | 国产成人影视 | 国产精品成av人在线视午夜片 | 国产精品人人做人人爽 | 国产视频福利在线观看 | 免费av手机在线观看 | 国产亚洲欧美一区二区三区 | 国产九九精品视频 | 欧美精品一区二区三区在线四季 | 久久极品 | av免费网站 | 国产精品久久久久久久天堂 | 亚洲欧洲一区二区 | 国产亚洲精品精品国产亚洲综合 | 久久午夜电影院 | 三级av网站| 日本久草| va在线观看 | 91精品久久 | 国产精品 日韩 | 男女视频在线看 | 亚洲一区二区三区在线播放 | 日韩有码在线播放 | 91麻豆精品国产91久久久更新资源速度超快 | 欧美性猛片aaaaaaa做受 | 成人欧美一区二区三区在线播放 | 久草综合在线 | 亚洲男人的天堂在线观看 | 日本 欧美 三级 高清 视频 | 精品久久久久久久久久久久久久 | 亚洲久久久 | 成人精品视频99在线观看免费 | 久久亚洲综合 | 国产亚洲精品美女久久久久久久久久 | 亚洲美女在线视频 | 成人影院www在线观看 | 99国产精品久久久 | 欧美一区久久 | 国产成人精品一区二区三区视频 | 国产亚洲精品久 | 亚洲一区视频网站 | 一区二区三区免费网站 | 欧美成人a| 中文字幕日韩一区二区不卡 | av一区二区三区四区 | 日本激情在线 | 久久综合九色综合欧美狠狠 | 一区二区日韩精品 | 成人毛片在线观看视频 | 网站av | 高清国产一区二区三区 | 久久精品亚洲精品国产欧美 | 亚洲精品视频在线免费 | 久久久久久久久国产成人免费 | 精品国产91亚洲一区二区三区www | 日韩欧美国产精品综合嫩v 国产高清av在线一区二区三区 | 毛片99| 精品一区二区三区中文字幕 | 久久久久久麻豆 | 亚洲精品亚洲人成人网 | 看一级黄色大片 | 亚洲蜜臀av乱码久久精品蜜桃 | 欧美精品亚洲 | 最新国产精品精品视频 | 国产精品手机在线 | 久久午夜精品 | 欧美一级特黄aaaaaa大片在线观看 | 97久久精品午夜一区二区 | 中文字幕在线三区 | 视频一区二区三区免费观看 | 欧美视频在线一区 | 亚洲乱码一区二区三区在线观看 | 巴西性猛交xxxx免费看久久久 | 中国毛片基地 | 亚洲 欧美 日韩 丝袜 另类 | 日本在线观看 | 国产精品久久久久久无遮挡 | 成人午夜免费视频 | 精品免费久久久久 | 国产高清在线精品一区二区三区 | 日韩成人在线一区 | 久久国产视频一区二区 | 欧美全黄 | 精品一区二区在线观看 | 国产丝袜一区二区三区免费视频 | 91av在线播放 | 国产成人在线一区二区 | 欧美三级网 | 亚洲一区二区三区蜜桃 | 国产精品一区二区三区在线播放 | 国产精品久久久久久久久久久久久久 | 免费av一区 | 国内精品视频在线观看 | 日韩电影一区二区三区 | 久久99国产一区二区三区 | 91精品一区二区 | 天天插天天操天天干 | 成人h动漫免费观看网站 | 一色一黄视频 | 91精品国产乱码久久蜜臀 | 一区二区三区亚洲精品国 | 午夜视频一区二区 | 精品国产依人香蕉在线精品 | 日韩在线免费 | 欧美视频一区二区三区在线观看 | 精品自拍视频 | 欧美精品被 | 免费毛片在线播放 | 99久久视频 | 色综合久久久久 | 亚洲国产二区 | 国产一区二区 | 国外成人在线视频 | 成人av入口| 97热在线观看 | 亚州中文 | 国产一区不卡 | 久久久www成人免费精品 | 天天干天天爽 | 狠狠干影院 | 国产成人精品一区二区在线 | av高清在线免费观看 | heyzo在线观看 | 黄色影片网址 | 国产一级特黄 | 天天草av| 久久国产精品一区二区 | 久久精品欧美一区二区三区不卡 | 色天天综合久久久久综合片 | 免费观看特级毛片 | 国产伦精品一区二区三区四区视频 | 亚洲男人的天堂网站 | 精品久久一二三区 | 欧美另类一二三四 | 精品成人久久 | 午夜影院毛片 | 密室大逃脱第六季大神版在线观看 | 人人干操 | 国产精品久久久久久久久软件 | h在线看| 龙珠z在线观看 | 黄色网址大全在线观看 | 久久久久九九九九 | 少妇精品久久久久久久久久 | а天堂中文官网 | 免费高清一级毛片 | 国产高清视频一区 | av激情在线 | 97色综合| 黑人精品视频 | 91视频国内 | 日韩中文字幕av | 亚洲免费视频大全 | 国产精品视频一二三区 | 欧美日韩一区二区在线 | 成人免费大片黄在线播放 | 久久久久亚洲av毛片大全 | 一区二区电影 | 国产精品久久久久一区二区三区 | 久久99视频这里只有精品 | 三级国产网站 | 国产欧美久久一区二区三区 | 操久久 | 黄色a视频 | h视频免费观看 | 国产成人精品免费视频大全 | 国产精品成人在线观看 | 国产一区二区三区四区在线观看 | 日日爱视频 | 插插射啊爱视频日a级 | 中文字幕一区二区三区不卡 | 美女视频黄又黄又免费 | 日韩欧美大片在线观看 | 免费黄色看片 | 国产精品网站在线观看 | 亚洲成年片 | 97视频免费在线观看 | 玖玖精品在线 | 神马香蕉久久 | 欧美猛交ⅹxxx乱大交视频 | 国产一区在线不卡 | 日日摸天天爽天天爽视频 | 亚洲狠狠爱 | www.国产精品 | 午夜天堂精品久久久久 | 国产伊人av | 亚洲不卡高清视频 | 久久国产午夜 | 97精品国产 | 欧美国产日韩一区 | 一区二区在线看 | 国产精品一区二 | 国内精品久久久久 | 国产欧美一区二区精品性色 | 日韩中字在线观看 | 久久蜜桃精品一区二区三区综合网 | 天天干天天操 | 伊人久久综合影院 | 91九色porny首页最多播放 | 欧洲妇女成人淫片aaa视频 | 日韩欧美国产成人一区二区 | 成人免费一区二区三区视频软件 | 国产乱码精品一区二区三区手机版 | 久久久精品视频免费观看 | 国产精品久久久久久婷婷天堂 | 国产真实乱全部视频 | 国产精品色一区二区三区 | 中文字幕日韩欧美一区二区三区 | 日韩精品久久 | av综合在线观看 | 伊人久操 | 亚洲福利av | 久久久精品欧美 | 日韩在线免费 | 久久久成人精品 | 成人午夜影院 | 欧美日韩一区二区电影 | 手机看片169 | 久久精品这里热有精品 | 欧美国产在线观看 | 日韩影音 | 夜夜操天天干 | 国产精品毛片无码 | 亚洲精品v | 亚洲成人精品一区 | 二区三区在线观看 | 在线一区观看 | av免费网站在线观看 | 在线欧美成人 | 久久久免费视频看看 | 中文精品在线 | av影音| 激情久久久久 | 99九九久久 | 国产精品国产三级国产aⅴ中文 | 91亚洲精品乱码久久久久久蜜桃 | 在线观看亚洲视频 | 国产一区999| 午夜精品久久久久久99热软件 | 国产精品25p | 一区二区免费在线 | 亚洲精品在线播放 | 成av人在线 | 97视频在线 | 97国产精品视频 | 操人视频网站 | 久久av网 | 国产高清在线精品一区二区三区 | 亚洲一区中文 | 看黄色.com| 热久久这里只有精品 | 午夜久久久久 | 欧美一级网站 | 国产主播一区 | 欧美狠狠操 | 国产成人欧美一区二区三区的 | 欧美不卡 | 91精品国产99 | 中文字幕av一区二区三区免费看 | 成人高清| 久久久久成人精品 | 色啪网站 | 欧洲精品在线观看 | 国产精品99一区二区三区 | 人人射人人舔 | 日本福利视频免费观看 | 欧美日韩精品一区 | 亚洲欧洲一区二区 | 国产一区二区视频免费 | 欧美精品在线免费观看 | 亚洲一区二区三区高清 | m豆传媒在线链接观看 | 天天色av | 色综合免费| 国产亚洲综合一区二区 | 国产精品久久久久久吹潮 | 干狠狠 | 在线观看中文字幕 | 免费一二区 | 国产在线中文字幕 | 国产午夜精品一区二区三区 | 欧美性18| 日韩一区二区福利 | 天堂一区二区三区在线 | av女人的天堂 | 久久精品一区二区 | 亚洲精品国产二区 | 国产福利在线免费 | 免费一看一级毛片 | 欧美视频网站 | 日干夜操 | 日本中文字幕一区二区 | 色综合天天天天做夜夜夜夜做 | 日韩久久一区 | 欧美精品tv| 成人亚洲视频在线观看 | 久草电影网 | 中文字幕精品一区二区三区精品 | 天天干狠狠干 | 人人人人澡| 中文字幕亚洲精品 | 亚洲一级毛片 | 亚洲久久一区 | 天天操狠狠操网站 | 日本久久久久久久久久久久 | 国产精品国产精品国产专区不片 | 欧美一区二区大片 | 日韩在线精品 | 日韩中文视频 | 欧美精品一区二区三区在线 | 亚洲自拍偷拍精品 | 成人影院av | av在线天堂 | 日韩在线中文字幕视频 | 91影院在线观看 | 国产无区一区二区三麻豆 | 国产福利精品一区 | 国产精品99久久久久久www | 免费欧美一级 | 国产日韩精品视频 | 91丁香婷婷综合久久欧美 | 四虎影视免费在线观看 | 成视频年人免费看黄网站 | 色接久久 | 天堂网色 | 国产精品成人国产乱一区 | 国产丝袜一区二区三区免费视频 | 一区二区三区中文字幕 | 久久精av| 中文字幕av在线 | 久久久久久久91 | 国产精品毛片无码 | 欧美激情一区二区三区在线观看 | 欧美日韩精品一区二区 | 欧美亚洲视频在线观看 | 免费看国产一级片 | 久久久美女 | 亚洲一区精品在线 | 国产精品亚洲一区二区三区在线 | 久久99精品久久久 | 亚洲精品久久久一区二区三区 | 91国内外精品自在线播放 | 亚洲国产精品t66y | 欧美一区亚洲二区 | 欧美日韩免费看 | 精品亚洲一区二区三区 | 欧美日韩一区二区不卡 | 天天艹逼 | 亚洲精品久久久 | 成年人福利| 成人免费视频观看 | 国产午夜视频 | 成人免费毛片高清视频 | 日韩一区电影 | 亚洲成熟少妇视频在线观看 | 成人午夜在线观看 | 欧美视频在线播放 | 久久极品 | 91在线一区二区 | 午夜黄色影院 | 热re99久久精品国99热线看 | 蜜桃视频一区二区 | 精品九九 | 成人久久 | 毛片com| 天天操网 | 欧美国产在线观看 | 欧美精品一区视频 | 欧美在线a| 一区二区三区在线免费观看 | 日韩色综合 | 国产精品成人3p一区二区三区 | 国产女人和拘做受在线视频 | 毛片在线免费 | 成人免费视频网站在线看 | 久久久精彩视频 | 亚洲精品在线免费看 | 精品国产乱码一区二区三区四区 | 国产精品视频免费 | 国产精品福利在线观看 | 亚洲视频三区 | 成人在线视频网址 | 精品国产一级毛片 | 国产一区91 | 国产一区二区三区在线免费观看 | 欧美日韩国产在线 | 91麻豆精品一二三区在线 | 欧美日韩国产精品 | 品久久久久久久久久96高清 | 国产91视频一区二区 | 欧美一区精品 | 色天天天天色 | 亚洲精品午夜aaa久久久 | 成人在线视频一区 | 成人看片网| 日韩国产| 久久久久国产一区二区三区 | 成人精品一区二区三区中文字幕 | 欧美一级高清在线 | 夜夜艹| 在线观看国产视频 | 国产精久 | 91在线观看视频 | 欧美精品一区二区三区在线 | 国产一级视频 | 欧美一级欧美三级在线观看 | 天堂久久久久久 | 一区二区三区不卡视频 | 丁香五月网久久综合 | 欧美性一区二区 | 中文在线亚洲 | 亚洲视频在线免费观看 | 九九综合 | 欧美精品亚洲精品日韩精品 | 伊人青青操 | 亚洲八区 | 国产精品久久久久久久久久久久 | 天天天干干干 | 欧美在线视频一区二区 | 久久久久一区二区三区 | 国产精品一区二区三 | 亚洲精品视频免费看 | 亚洲一区成人 | a在线免费观看 | 久久久999成人 | 91 在线 | 一区二区三区在线观看国产 | 日韩在线看片 | 毛片免费视频 | 成年人看的羞羞网站 | 色九九 | 特黄特色大片免费视频观看 | 精品国产乱码久久久久久1区2区 | 在线一区二区免费 | 国精产品一区二区三区有限公司 | 黄色毛片在线播放 | 日本黄色三级网站 | 一区二区三区四区在线 | 久久精品免费观看视频 | 国产精品日本一区二区在线播放 | 亚洲欧美国产精品久久久久 | 91资源在线观看 | 91在线视频福利 | 亚洲乱码国产乱码精品精的特点 | 91精品国产乱码久久久久久 | 国产精品久久久久久久久免费丝袜 | 亚洲成人精品一区二区三区 | 国产日韩中文字幕 | 久久影院国产 | 日韩午夜| 欧美成人精品一区二区三区 | 亚洲国产成人在线 | 91高清视频在线观看 | 四虎永久在线观看 | 亚洲精选久久 | 99re热精品视频国产免费 | 成人影音 | 欧美一级全黄 | 成人在线观看免费视频 | 亚洲午夜激情网 |