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

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

Vue axios獲取token臨時令牌封裝案例

瀏覽:113日期:2022-11-23 15:40:00

前言

為什么非要寫這個博客呢?因為這件事讓我有一種蛋蛋的優(yōu)疼。剩下的都別問,反正問我也不會說。因為流程圖我都不想(懶得)畫。

開發(fā)架構

前端頁面:Vue

網(wǎng)絡請求:Axios;方式:vue add axios

緩存方案

全局變量:Vuex

本地緩存:LocalStorage

技術依賴

你猜?

背景

公司開發(fā)一個嵌入App的Web頁面,安全方面使用老套路:App通過URL傳參給前端(包含簽名),前端把參數(shù)透傳給H5后端驗簽,完事兒之后前端再決定用戶是否合法。另外定義了N個JS方法前端根據(jù)固定GET參數(shù)判斷是安卓還是蘋果來調用。

初步設想

關于token設計方案的初步設想是這樣的:第一次進入的時候獲取token,后端檢查簽名是否通過。不通過則彈框請從合法途徑進入頁面并且不消失。

否則就可以讓用戶繼續(xù)后續(xù)操作,直到后端返回token過期特定狀態(tài)碼回來前端在用戶無感的情況下調用JS方法重新獲取URL參數(shù)請求token,完事兒之后繼續(xù)用戶的請求操作。(為避免用戶使用舊token在其他地方操作數(shù)據(jù),每次獲取token都重新從App中獲取并驗證,而不是在接口中刷新并返回新的token)

蛋疼事項

一期的時候定義URL參數(shù)時沒有版本控制,導致二期新增JS方法迭代版本時前端新增頁面調用了未知方法頁面毫無反應;埋點數(shù)據(jù)也不知道是幾期的…

為盡量避免請求過程中出現(xiàn)token過期導致的1次請求變3次請求現(xiàn)象每次調用請求之前需要先檢查token時效的異步方法(如果token過期則調用getToken獲取新的token并存儲在本地)導致block嵌套。

后面又封裝了N個方法就不說了…

升級設想

版本什么的這個先不說,就這個token問題我總不能每次新增一個請求就復制粘貼復制粘貼的吧?能煩死人!那我只能在axios請求之前判斷token時效性啦。

直奔主題

函數(shù)聲明

getToken:從本地取已存儲token

checkToken:檢查token時效,失效調用refreshToken函數(shù)成功則存儲本地,否則返回錯誤原因

refreshToken:調用JS方法從App獲取簽名參數(shù)重新請求token

注意事項

在checkToken過程中token過期時,先移除本地已過期token緩存數(shù)據(jù)。

/* eslint-disable no-console *//* eslint-disable no-unused-vars */'use strict';import Vue from ’vue’;import axios from 'axios';import { getToken } from ’../utils/storage.js’import { checkToken, refreshToken, clearCache } from '../utils/utils.js';// Full config: https://github.com/axios/axios#request-config// axios.defaults.baseURL = process.env.baseURL || process.env.apiUrl || ’’;// axios.defaults.headers.common[’Authorization’] = AUTH_TOKEN;// axios.defaults.headers.post[’Content-Type’] = ’application/x-www-form-urlencoded’;axios.defaults.headers.post['Content-Type'] = 'application/json';let cancel, promiseArr = {};let config = { baseURL: process.env.VUE_APP_BASE_URL, timeout: 8 * 1000, // Timeout withCredentials: true, // Check cross-site Access-Control};const _axios = axios.create(config);_axios.interceptors.request.use( function (config) { // Do something before request is sent let token = getToken(); // alert('token1:' + token); //發(fā)起請求時,取消掉當前正在進行的相同請求 if (promiseArr[config.url]) { promiseArr[config.url]('請稍后'); promiseArr[config.url] = cancel; } else { promiseArr[config.url] = cancel; } if (token) { return checkToken(null) .then((result) => { // console.log('refreshToken result:', result); if (result === true) { token = getToken() // alert('token2:' + token); config.headers.common['authorization'] = token; return config; } else { return Promise.reject(Error(result)) } }).catch((err) => { // 終止這個請求 return Promise.reject(err); }); } return config; }, function (error) { // Do something with request error return Promise.reject(error); });// Add a response interceptor_axios.interceptors.response.use( function (response) { // Do something with response data let { status, statusText, data } = response; if (err_check(status, statusText, data) && data) { // var randomColor = `rgba(${parseInt(Math.random() * 255)},${parseInt( // Math.random() * 255 // )},${parseInt(Math.random() * 255)})`; // console.log( // '%c┍------------------------------------------------------------------┑', // `color:${randomColor};` // ); // console.log('| 請求地址:', response.config.url); // console.log('| 請求參數(shù):', response.config.data); // console.log('| 返回數(shù)據(jù):', response.data); // console.log( // '%c┕------------------------------------------------------------------┙', // `color:${randomColor};` // ); if (data.resCode === '0001') { clearCache() var config = response.config; var url = config.url; url = url.replace('/apis', '').replace(process.env.VUE_APP_BASE_URL, '') config.url = url; // alert(JSON.stringify(config)) return refreshToken(null) .then((result) => { // console.log('refreshToken result:', result); if (result == true) { let token = getToken() if (token) {config.headers['authorization'] = token; } return axios(config).then((result) => {let { status, statusText, data } = result;// console.log(’接口二次請求 result:’, result);if (err_check(status, statusText, data) && data) { return Promise.resolve(data)} else { return Promise.reject(Error(data.resDesc));} }).catch((err) => {// console.log(’接口二次請求 err:’ + err);return Promise.reject(err); }); } else { // alert('result:' + result) return Promise.reject(Error(data.resDesc)) } }).catch((err) => { // 終止這個請求 // alert('終止這個請求:' + err.message) // console.log('refreshToken err:', err); return Promise.reject(err); }); } else { return Promise.resolve(data); } } else { return Promise.reject(Error(statusText)); } // return response; }, function (error) { // Do something with response error // console.log('error', error); return Promise.reject(error); });// eslint-disable-next-line no-unused-varsconst err_check = (code, message, data) => { if (code == 200) { return true; } return false;};Plugin.install = function (Vue, options) { Vue.axios = _axios; window.axios = _axios; Object.defineProperties(Vue.prototype, { axios: { get() { return _axios; } }, $axios: { get() { return _axios; } }, });};Vue.use(Plugin)export default Plugin;

補充知識:vue+ axios+token 封裝axios 封裝接口url,帶token請求,token失效刷新

一、封裝axios

import axios from ’axios’import qs from 'qs' const TIME_OUT_MS = 60 * 1000 // 默認請求超時時間//axios.defaults.baseURL = ’http://localhost:8080’; // http request 攔截器axios.interceptors.request.use( config => { if ($cookies.get('access_token')) { // 判斷是否存在token,如果存在的話,則每個http header都加上token config.headers.Authorization =’Bearer ’+ $cookies.get('access_token'); } return config; }, err => { return Promise.reject(err);}); // http response 攔截器axios.interceptors.response.use( response => { return response; }, error => { console.log('response error :'+error); if (error.response) { switch (error.response.status) {case 401: console.log('token 過期'); var config = error.config; refresh(config); return; } } return Promise.reject(error) // 返回接口返回的錯誤信息 });/**刷新token*/function refresh(config){ var refreshToken = $cookies.get('refresh_token'); var grant_type = 'refresh_token'; axios({ method: ’post’, url: ’/oauth/token’, data: handleParams({'grant_type':grant_type,'refresh_token':refreshToken}), timeout: TIME_OUT_MS, headers: {} }).then( (result) => { if(result.data.access_token){ //重新保存token$cookies.set('access_token',result.data.access_token);$cookies.set('refresh_token',result.data.refresh_token);//需要重新執(zhí)行axios(config); }else{ //this.$events.emit(’goto’, ’login’);window.location.reload(); } } ).catch((error) => { //this.$events.emit(’goto’,’login’); window.location.reload(); });}/** @param response 返回數(shù)據(jù)列表*/function handleResults (response) { var result = { success: false, message: ’’, status: [], errorCode: ’’, data: {} } if (response.status == ’200’) { result.status = response.status; result.data = response.data; result.success = true; } return result} // function handleUrl (url) {// //url = BASE_URL + url// url =root +url;// // BASE_URL是接口的ip前綴,比如http:10.100.1.1:8989/// return url// } /** @param data 參數(shù)列表* @return*/function handleParams (data) { return qs.stringify(data);} export default { /* * @param url * @param data * @param response 請求成功時的回調函數(shù) * @param exception 異常的回調函數(shù) */ post (url, data, response, exception) { axios({ method: ’post’, //url: handleUrl(url), url: url, data: handleParams(data), timeout: TIME_OUT_MS, headers: {//’Content-Type’: ’application/json; charset=UTF-8’ } }).then( (result) => {response(handleResults(result)) } ).catch( (error) => {if (exception) { exception(error)} else { console.log(error)} } ) }, /* * get 請求 * @param url * @param response 請求成功時的回調函數(shù) * @param exception 異常的回調函數(shù) */ get (url,data, response, exception) { axios({ method: ’get’, url: url, params:data, timeout: TIME_OUT_MS, headers: {’Content-Type’: ’application/json; charset=UTF-8’ } }).then( (result) => {response(handleResults(result)) } ).catch( (error) => {console.log('error'+response);if (exception) { exception(error)} else { console.log(error)} } ) }}

二、配置axios 跨域,以及請求baseUrl

1.config-->index.js

’’use strict’// Template version: 1.3.1// see http://vuejs-templates.github.io/webpack for documentation. const path = require(’path’) //引入跨域配置var proxyConfig = require(’./proxyConfig’) module.exports = { dev: { // Paths assetsSubDirectory: ’static’, assetsPublicPath: ’/’, //proxyTable: {}, //默認跨域配置為空 proxyTable: proxyConfig.proxy, // Various Dev Server settings host: ’localhost’, // can be overwritten by process.env.HOST port: 8886, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined autoOpenBrowser: false, errorOverlay: true, notifyOnErrors: true, poll: false, // https://webpack.js.org/configuration/dev-server/#devserver-watchoptions- /** * Source Maps */ // https://webpack.js.org/configuration/devtool/#development devtool: ’cheap-module-eval-source-map’, // If you have problems debugging vue-files in devtools, // set this to false - it *may* help // https://vue-loader.vuejs.org/en/options.html#cachebusting cacheBusting: true, cssSourceMap: true }, build: { // Template for index.html index: path.resolve(__dirname, ’../dist/index.html’), // Paths assetsRoot: path.resolve(__dirname, ’../dist’), assetsSubDirectory: ’static’, // 項目名字改變時這里需要變化 原先為assetsPublicPath: ’.’ assetsPublicPath: ’./’, /** * Source Maps */ productionSourceMap: true, // https://webpack.js.org/configuration/devtool/#production devtool: ’#source-map’, // Gzip off by default as many popular static hosts such as // Surge or Netlify already gzip all static assets for you. // Before setting to `true`, make sure to: // npm install --save-dev compression-webpack-plugin productionGzip: false, productionGzipExtensions: [’js’, ’css’], // Run the build command with an extra argument to // View the bundle analyzer report after build finishes: // `npm run build --report` // Set to `true` or `false` to always turn it on or off bundleAnalyzerReport: process.env.npm_config_report }}

2.config目錄下創(chuàng)建一個文件 proxyConfig.js文件

module.exports={ proxy:{ ’/’:{ //將localhost:8081 映射為 /apis target:’http://localhost:8080’,//接口地址 changeOrigin: true,// 如果接口跨域,需要進行這個參數(shù)配置 secure:false, //如果接口是HTTPS接口,需要設置成true pathRewrite:{’^/’:’’ } } }}

三、封裝API 請求Url port.js

export default { oauth: { login: ’/oauth/token’, // 登錄 logout: ’/oauth/logout’ // // 退出 }, user: { addUser: ’/user/add’, updateUser: ’/user/update’, getUser:’/user/’, //+ Id exists:’/exists/’, // +id enable:’/enable/’, // +id disable:’/disable/’, // +id delete:’/delete/’, //+id password:’/password ’, query:’/query’ }}

四、main.js 引入

import http from ’./plugins/http.js’import ports from ’./plugins/ports’Vue.prototype.http = httpVue.prototype.ports = ports

五、使用

login.vue中使用

login() { this.http.post(this.ports.oauth.login,{username:this.userId, password:this.password,grant_type:’password’}, res => { if (res.success) { // 返回正確的處理 頁面跳轉 this.$events.emit(’goto’, ’edit’); } else { // 返回錯誤的處理 //alert('等待處理'); }},err =>{ //console.log('正在處理'+err.response.status); if(err.response.status==’400’){ //顯示用戶名或密碼錯誤 this.$refs.username.focus(); this.$refs.hint.click(); } }) }

以上這篇Vue axios獲取token臨時令牌封裝案例就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持好吧啦網(wǎng)。

標簽: IOS
相關文章:
主站蜘蛛池模板: 婷婷久久综合九色综合绿巨人 | 偷拍自拍第一页 | 久久国产精品99久久久久久老狼 | 美女h在线观看 | a级黄色毛片免费观看 | 艹艹网| 久久免费精品 | 久久久男人天堂 | 亚洲人人艹| 欧美日韩国产一区二区 | 国产精品三级久久久久久电影 | www.国产视频 | 国产欧美精品一区二区 | 免费看片一区二区三区 | 亚洲国产精品久久人人爱 | 久久亚洲黄色 | www久久精品 | 国产亚洲精品久 | 九一在线观看 | 久久99精品国产99久久6男男 | 97伦理在线| 国产成人在线播放 | 一级全黄少妇性色生活片毛片 | 国产精品一区二区不卡 | 久久久一 | 视频二区在线观看 | 视色视频在线观看 | 2024天天干 | 欧美国产在线观看 | 在线激情视频 | 成年人免费在线视频 | 精品在线一区 | 国产精品一二三区视频 | 免费在线观看av的网站 | 日韩色综合 | 亚洲三区在线观看 | 亚洲精品在线网站 | 国产精品久久久久久影院8一贰佰 | 午夜影院网站 | 欧美日韩一区二区三区 | 男人久久天堂 | 欧美日韩中文字幕 | 精品久久久久久久久久久 | 粉嫩高清一区二区三区精品视频 | 国产亚洲精品久久久久久久久 | www.日韩av.com | 久久久久久久一区二区 | 99精品国产高清一区二区麻豆 | 91亚洲高清 | 黄a免费| 久久久一区二区 | 亚洲精品久久久久久国产精华液 | 天堂中文网 | 亚洲无吗天堂 | 欧美一区二区三区xxxx监狱 | www国产亚洲精品久久网站 | 亚洲高清视频在线观看 | 婷婷综合激情 | 91精品国产综合久久久久久丝袜 | 亚洲伦理影院 | 国产精品99久久久久久动医院 | 国产一区二区视频免费看 | 99热精品视 | 日本一区不卡 | av中文字幕在线观看 | 2019天天干夜夜操 | 欧美 日韩 中文字幕 | 伊人av成人 | 亚洲日韩中文字幕一区 | 日韩手机专区 | 日产欧产va高清 | 青青草一区 | 亚洲激情在线 | 久久毛片| 美女视频一区二区三区 | 中文字幕精品三区 | 精品一区二区视频 | 精品久久一二三区 | 国产www在线| 精品成人一区 | 免费观看一级特黄欧美大片 | 国产精品久久综合 | 久久精品影视 | 午夜久久久久 | 国产一区二区三区久久久久久久久 | 亚州中文字幕 | 国产精品一区二区三区在线 | 欧美一级精品 | 色中色综合 | www.日韩系列 | 国产高清精品一区 | 亚洲高清在线观看 | 欧美aaaaa | 成人精品久久 | 国产中文字幕在线观看 | 亚洲欧美国产精品专区久久 | 精品国产一区一区二区三亚瑟 | 免费看一区二区三区 | 免费观看黄色一级大片 | 综合久久99 | 日日干夜夜操 | 国产精品99一区二区三区 | 欧美一区不卡 | h网站在线观看 | 免费一区在线 | 久久tv在线观看 | 国产欧美精品一区aⅴ影院 毛片视频网站 | 91极品国产 | 午夜爱爱毛片xxxx视频免费看 | 精品无人乱码一区二区三区 | 亚洲 中文 欧美 日韩在线观看 | 国产一区www | 日韩精品一区二区在线观看 | 午夜激情电影在线 | www.久久精品 | 免费视频爱爱太爽了 | 久久久久久国产 | 在线日韩一区 | 国产乱视频| 欧美成人精品一区二区 | 婷婷在线免费视频 | 亚洲欧美日韩电影 | 综合久久久 | 亚洲国产在 | 91免费在线| 精品欧美一区二区三区久久久 | 精品久久久久久久久久久院品网 | 中文字幕一区二区三区日韩精品 | 欧美日韩视频在线第一区 | 亚洲成人在线观看视频 | 欧美日韩亚洲一区二区 | 狠狠91| 欧美日韩高清不卡 | www.国产| 日韩精品视频久久 | 亚洲福利| 国产51人人成人人人人爽色哟哟 | 亚洲日韩成人 | 99影视| 国产精品精品视频一区二区三区 | 国产精品日本一区二区在线播放 | 99动漫 | 国产成人免费 | 国产做a爰片久久毛片a我的朋友 | 亚州中文字幕蜜桃视频 | 亚洲一区二区免费看 | 国产精品18久久久 | 成人精品一区二区三区中文字幕 | 久久电影一区 | 色伊人久久 | 伊人伊人| 亚洲日本精品视频 | 亚洲福利一区二区 | 久久精品网| 91看片 | 国产精品国产三级国产aⅴ无密码 | 久久精品 | 美女超碰 | 日本国产欧美 | av网站免费在线观看 | 99亚洲精品| 中文字幕日韩欧美一区二区三区 | 91视频国产网站 | 激情网页 | 欧美久久视频 | 韩日精品视频 | 性培育学校羞耻椅子调教h 欧美精品网站 | 国产亚洲精品精品国产亚洲综合 | 伊人伊人 | 精品精品 | 久久久www | 日韩精品视频在线播放 | 免费国产成人 | 国产精品一区二区不卡 | 成人国产精品久久 | 亚洲成人在线观看视频 | 亚洲精品视频在线 | 日韩精品一区二区三区中文字幕 | 亚洲高清在线观看 | 91国偷自产一区二区三区亲奶 | 欧美午夜视频 | 中文在线视频 | 中文字幕综合 | 九九视频在线 | 午夜a级理论片915影院 | 国产日韩一区二区三免费高清 | 国产精品18hdxxxⅹ在线 | 亚洲黄页| 欧美激情视频一区二区三区在线播放 | 午夜视频福利 | 中文字幕一区二区三 | 美女久久久 | 操网| 九九九色| 天天干天天av | 日韩精品专区 | 成年免费观看视频 | 日本一区视频在线观看 | 成人在线免费观看视频 | 欧美午夜一区二区三区免费大片 | 综合伊人| 人人干人人干人人 | 麻豆视频91| 91在线精品秘密一区二区 | 中文字幕国产区 | 日韩三区 | 国产一区二区视频在线观看 | 999久久久国产999久久久 | 日韩中文字幕电影在线观看 | av大片网| 久久免费电影 | 91资源在线观看 | 成人欧美一区二区三区在线观看 | 国产一区二区视频在线观看 | 成人在线h| 超碰97免费在线 | 超碰在线播 | 在线视频不卡一区 | 亚洲a网 | 九九免费视频 | 亚洲一区二区三区免费 | 蜜臀一区| 91中文在线 | 91视频免费看片 | 欧美成人免费视频 | 国产男女做爰免费网站 | 国产视频一区在线 | 99久久精品免费看国产免费粉嫩 | 国产情侣一区二区三区 | 国产精品成人久久久久 | 亚洲午夜精品视频 | ririsao久久精品一区 | 欧美日韩免费看 | 国产成人精品一区二区三区视频 | 男女羞羞羞视频午夜视频 | 欧美激情一区二区三区 | 91麻豆精品国产91久久久资源速度 | 91精品久久久久久久久久入口 | 亚洲精品乱码久久久久久金桔影视 | a中文在线视频 | av色伊人久久综合一区二区 | 日韩中文字幕在线 | 日韩中文字幕一区 | 99青青草 | 亚洲精品国产综合区久久久久久久 | 999视频在线免费观看 | 欧美国产综合 | 国产v日产∨综合v精品视频 | 羞羞av在线 | 欧美一级片在线观看 | 波多野结衣先锋影音 | 99热69| 亚洲久悠悠色悠在线播放 | 精品一区二区在线观看 | 久久亚洲一区二区三区四区 | 亚洲高清av| 亚洲福利| 欧美一区二区免费 | 久久不射网| 不卡久久 | 99久热在线精品视频观看 | 天天草夜夜 | 91在线一区二区 | 国产精品无码永久免费888 | 亚洲成人日本 | 亚洲精品久久久久久一区二区 | 国产精品1区 | 久久综合伊人77777 | 国产三级一区二区 | 精品国产乱码久久久久久久软件 | www.麻豆视频 | 杏导航aⅴ福利网站 | 97色综合| 91亚洲国产成人精品性色 | 免费福利视频一区二区三区 | 婷婷激情综合 | 精品一区av | 91亚洲国产成人久久精品网站 | 91久久久久久久久久久久久 | 毛片国产| 亚洲大尺度视频 | 亚洲免费在线播放 | 日韩av电影免费 | 国产区在线| 亚洲欧洲一区二区三区 | 国产精品色婷婷久久58 | 精品亚洲永久免费精品 | 91网站在线看 | 吴梦梦到粉丝家实战华中在线观看 | а天堂中文最新一区二区三区 | 91精品久久久久久久久久入口 | 亚洲免费在线视频 | 精品视频一区二区在线观看 | 在线成人免费视频 | 久久久久国产一区二区三区四区 | 欧洲免费视频 | 国产精品久久久久久久久久久久久久 | 伊人欧美在线 | 网站一区二区三区 | 成人免费一区二区三区视频网站 | 国产精品综合久久 | 国产精品久久久久久久福利院 | 国产欧美视频在线 | 伊人久久一区二区三区 | 国产精品久久久麻豆 | 五月婷婷导航 | 嫩草影院在线观看91麻豆 | 国产一区二区视频在线观看 | 男女深夜视频 | 欧美a视频 | 亚洲性生活免费视频 | 五月网婷婷 | 日韩一区欧美 | 久久久久国产一区二区三区四区 | 亚洲另类小视频 | 成人在线一区二区 | 国产精品一区二区三区免费视频 | 亚洲成人伦理 | 精品国产一区二区三区四区 | 亚洲成人av在线 | 亚洲精品久久久久久国产精华液 | 综合久久99 | 免费v片 | 一区二区在线免费观看 | 特级理论片 | 91hd精品少妇 | 欧美激情小视频 | 国产成人高清 | 国产精品久久久久久一区二区三区 | 福利网址| 视频在线一区二区三区 | 不卡久久 | 精品国产一区二区三区久久久 | 在线观看毛片视频 | 亚洲一区二区在线 | 久久国产精品系列 | 天天插天天操 | 99re99| 天天色影视综合 | 精品亚洲一区二区三区 | av网站免费看 | 99国产精品久久久久老师 | 国产精品国产三级国产aⅴ原创 | 日韩一级大片 | 韩国成人精品a∨在线观看 国产伊人av | 一级黄色录像毛片 | 国产中文字幕一区 | 久久女同互慰一区二区三区 | 国产高清在线不卡 | 91精品一区二区三区久久久久久 | 激情欧美一区二区三区中文字幕 | 久久久久亚洲精品 | 精品国产一区二区三区久久久蜜月 | 午夜视频在线免费观看 | 国产精品久久久麻豆 | 日韩精品区 | 亚洲天堂中文字幕 | 久久国产精品一区二区 | 久久性| 亚洲精品国产片 | 天天夜操 | 色综合久 | 欧美亚洲高清 | 91在线一区二区 | 在线视频一二区 | 日韩一区二区福利视频 | 亚洲区在线 | 国产91色 | 欧美日韩亚洲国内综合网 | 免费毛片在线 | 一级a性色生活片毛片 | 国产亚洲精品成人av久久ww | 欧美久久免费 | 日韩成人影院在线观看 | 国产精品美女久久久久aⅴ国产馆 | 日韩有码一区 | 日韩欧美a级v片免费播放 | 人人艹人人爽 | 国产一区二区在线免费观看 | 久久久久久久久综合 | 欧美日韩黄色一区二区 | 欧美另类一二三四 | 亚洲综合欧美 | 男女视频免费 | 国产精品毛片久久久久久久 | 91精品国产91久久久久久最新 | 欧美日韩一区二区电影 | 五月天婷婷精品 | 高清视频一区二区三区 | 免费成人在线网站 | 亚洲国产成人久久综合一区,久久久国产99 | 毛片在线视频 | 操老逼 | 九九热在线视频免费观看 | av在线视 | 国产精品一区免费在线观看 | 情一色一乱一欲一区二区 | 国产精品久久久久久吹潮 | 亚洲免费一区 | av在线大全 | 久久国产精品免费一区二区三区 | 中文字幕第56页 | 日韩成人一区二区 | 欧美在线视频一区 | 国产伦精品一区二区三区在线 | 亚欧毛片| 日韩欧美国产精品综合嫩v 久久久久久国产精品高清 国产目拍亚洲精品99久久精品 | 亚洲天堂男人 | 天天综合网网欲色 | 成人免费视频网站在线观看 | 99久久精品免费看国产免费软件 | 在线播放亚洲 | 狠狠操一区二区三区 | 国产探花在线精品一区二区 | 日韩久久午夜一级啪啪 | 中文字幕精品一区久久久久 | 欧洲成人在线 | 欧美一区二区三区 | 青青草在线视频免费观看 | 黄色在线观看网址 | 日本天堂一区二区 | 一区二区三区精品视频免费看 | 久久久久久久国产精品 | av一区二区三区 | 久久免费国产精品 | 精品视频在线免费观看 | 欧美激情一区二区三级高清视频 | 日韩无 | 91精品欧美久久久久久动漫 | 亚洲欧美高清 | 久久精品国产91精品亚洲高清 | 日韩精品一区二区三区视频播放 | 日本一区二区精品 | 一区二区三区精品 | 亚洲精彩视频 | 国产精品久久久久久久久 | 日韩视频在线播放 | 国产私拍视频 | 亚洲精品久久久久久久久久久久久 | 久色91 | 亚洲 欧美 日韩在线 | 日韩视频在线观看视频 | 日韩91 | av超碰在线| 日韩一区二区三区福利视频 | 日本三级2018| 日韩国产在线 | 国产精品25p | 亚洲深深色噜噜狠狠网站 | 极品久久| 一区二区三区四区在线播放 | 中文av在线播放 | 男女18免费网站视频 | 国产精品日韩 | 欧美三级在线视频 | 成人欧美一区二区三区在线播放 | 日韩精品视频免费在线观看 | 久久精品视频网站 | 国产精品热 | 91精品国产综合久久精品 | 久久成人免费视频 | 免费av在线网站 | 91看片在线观看 | 日韩视频不卡 | 国产精品污www在线观看 | 热re99久久精品国99热线看 | 欧美日韩亚洲国产综合 | 日韩中文在线观看 | 国产在线观看一区二区三区 | 国产美女自拍视频 | 欧美精品1区2区3区 欧美视频在线一区 | 欧美日韩成人在线视频 | 国产成人久久精品一区二区三区 | 欧美一区亚洲二区 | 色偷偷噜噜噜亚洲男人 | 欧美日韩中文在线观看 | 国产精品国产 | 成人1区 | 久久精品免费视频播放 | 国产精彩视频 | 国产一二三视频 | 日韩精品一区二区三区视频播放 | the蜜臀av入口| 亚洲欧美中文字幕 | 91久久 | 亚洲精品午夜aaa久久久 | 中文字幕精品一区久久久久 | 免费成人在线电影 | 成人在线免费观看 | 国产精品久久久久久 | 仙人掌旅馆在线观看 | 欧美精品99| 成人欧美一区二区三区黑人孕妇 | 国内精品国产三级国产在线专 | 五月激情综合网 | 精品二区 | 日韩欧美在线观看视频网站 | 欧美一级网站 | 国产乱码精品一区二区三区av | 特级毛片在线 | 美女视频一区 | 久久久99精品免费观看 | 在线观看免费黄色片 | 久久久久国产精品免费免费搜索 | 中文字幕日韩在线 | 一级毛片免费在线 | 日韩欧美一区二区三区免费观看 | 91精品国产综合久久福利 | 精品久久久久久久久久久久久久久久久久久 | 日本做暖暖视频高清观看 | 日韩av资源站 | 国产视频三区 | 99热在线播放 | 在线视频久 | 91色在线观看 | 337p亚洲欧洲 | 蜜臀精品 | 亚洲免费视频观看 | 中文字幕亚洲精品 | 日本视频一区二区三区 | 黄色精品视频 | 最近中文字幕免费观看 | 日韩高清不卡一区二区三区 | 欧美成人精品在线视频 | 亚洲一区二区三区在线免费观看 | 亚洲国产精品一区二区第一页 | 日本一区二区在线视频 | 久久久精品日本 | 在线黄av| 成人二区 | 日韩一区三区 | 欧美三级视频在线播放 | 国产精品久久久999 成人亚洲视频 | 伊人99 | 999精品免费 | 免费a爱片猛猛 | 欧美精品日韩 | 老司机精品福利视频 | 99爱免费观看国语 | 国产乱视频网站 | 精品亚洲一区二区三区 | 亚洲精品视频在线 | 在线视频这里只有精品 | 九九免费视频 | 日韩国产欧美一区 | 日本小视频网站 | 超碰av在线| 99re6热在线精品视频播放 | 久色视频| 亚洲一区视频在线 | 日韩一区二区三区四区五区 | 蜜桃视频在线观看www社区 | 亚洲国产精品99久久久久久久久 | 视频一区二区三区免费观看 | a欧美| 欧美一级毛片免费看 | 综合久久综合久久 | 精品日韩一区二区三区 | 欧美一区二区三区视频 | 天堂欧美城网站 | 中文字幕视频一区 | 国产精品永久免费自在线观看 | 亚洲精品女优 | 国产精品免费观看 | 久久久高清 | 国产一区在线观看视频 | 久久久精品一区 | 九九久久久 | 欧美理伦片在线播放 | 日韩一区二区在线观看 | 亚洲一区欧美一区 | 久久综合亚洲 | 国产成人精品综合 | 久久一区二区av | 欧美激情亚洲 | 中文字幕成人 | 在线免费观看毛片 | 国产婷婷精品av在线 | 日本99精品| 欧美日韩一区二区在线观看 | 91久久久久久久久 | 久久久久久亚洲一区二区三区蜜臀 | 国产午夜精品美女视频明星a级 | 天天澡天天狠天天天做 | 欧美日韩免费一区二区三区 | 久久久免费观看 | 久久国产精品久久久久久 | 久久久久久久久久久久网站 | 天堂资源库 | 日韩欧美视频 | 成人影 | 老司机精品福利视频 | 欧美日韩在线精品 | 男人天堂亚洲 | 国产一区二区免费视频 | 精品综合 | 久久丝袜| 亚洲精品一区二区三区 | 国产中文在线 | 成人av影院 | 欧美成人免费一级人片100 | www.日韩在线观看 | 视频一区二 | 国产全黄 | 成人h动漫免费观看网站 | 91麻豆精品国产91久久久资源速度 | 国产精品久久久爽爽爽麻豆色哟哟 | 天堂资源库 | 国产精品美女久久久久aⅴ国产馆 | 精品久久久久一区二区国产 | 国产精品一区电影 | 国产目拍亚洲精品99久久精品 | www.色综合 | 欧美综合一区二区 | 一级在线观看视频 |