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

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

淺談vue權限管理實現及流程

瀏覽:5日期:2023-01-25 11:33:43

一、整體思路

后端返回用戶權限,前端根據用戶權限處理得到左側菜單;所有路由在前端定義好,根據后端返回的用戶權限篩選出需要掛載的路由,然后使用 addRoutes 動態掛載路由。

二、實現要點

(1)路由定義,分為初始路由和動態路由,一般來說初始路由只有 login,其他路由都掛載在 home 路由之下需要動態掛載。(2)用戶登錄,登錄成功之后得到 token,保存在 sessionStorage,跳轉到 home,此時會進入路由攔截根據 token 獲取用戶權限列表。(3)全局路由攔截,根據當前用戶有沒有 token 和 權限列表進行相應的判斷和跳轉,當沒有 token 時跳到 login,當有 token 而沒有權限列表時去發請求獲取權限等等邏輯。(4)處理用戶權限,在 store.js 定義一個模塊 permission.js,專門用于處理用戶權限相關的邏輯,用戶權限列表、菜單列表都保存在此模塊;(5)用戶權限列表、菜單列表的處理,前端的路由要和后端返回的權限有一個唯一標識(一般用路由名做標識符),根據此標識篩選出對應的路由。(6)左側菜單,要和用戶信息、用戶管理模塊使用的菜單信息一致,統一使用保存在 store 中的變量。

三、具體實現流程

1、準備工作,路由定義

/* router/indes.js *//* 初始路由 */let router = new Router({ mode: ’history’, routes: [ { path: ’/login’, name: ’login’, component: () => import(’@/views/login.vue’), }, ]});

/* router/indes.js *//* 準備動態添加的路由 */export const dynamicRoutes = [ { path: ’/’, name: ’home’, component: () => import(’@/views/home.vue’), meta: { requiresAuth: true, }, children: [ // 用戶信息 {path: ’/user-info’,name: ’user-info’,component: () => import(’@/views/user-setting/user-info.vue’), }, // 修改密碼 {path: ’/user-password’,name: ’user-password’,component: () => import(’@/views/user-setting/user-password.vue’), }, ] }, { path: ’/403’, component: () => import(’@/views/error-page/403’), }, { path: ’*’, component: () => import(’@/views/error-page/404’), },];

系統主要頁面的路由,后續會將這些路由經過權限篩選,添加到 home 路由的 children 里面

/* router/router.js */export default [ // 部署管理 { path: ’/deploy-manage’, name: ’deploy-manage’, component: () => import(’@/views/sys-admin/deploy-manage/deploy-manage.vue’), meta: { permitName: ’deploy-manage’, } }, // ...];

2、用戶登錄

用戶進入登錄頁,輸入用戶名、密碼、驗證碼,點擊登錄,發送登錄請求,登錄成功之后,將 token 保存在 sessionStorage,然后跳轉到首頁 /home ,進入路由攔截的邏輯。

/* login.vue */// 發送登錄請求vm.$http.login(params, data => { sessionStorage.token = data.token; // ... // 跳轉到首頁 home。這里會觸發全局路由攔截 router.beforeEach vm.$router.push({ name: ’home’ });}, err => { console.log(err);});

3、全局路由攔截

首先從打開本地服務 http://localhost:2001 開始,打開后會進入 login 頁面,那么判斷的依據是什么?

首先是 token。沒有登錄的用戶是拿不到 token 的,而登錄后的用戶我們會將 token 存到 seesionStorage,因此,根據當前有沒有 token 即可知道是否登錄。

/* 全局路由攔截 */router.beforeEach((to, from, next) => { // 根據有沒有token判斷是否登錄 if (!sessionStorage.token) { // 1、當用戶打開localhost,to.matched === [],匹配的是空路由,此時需要重定向到login // 2、重定向到login之后,to.matched === [name: 'login', path: '/login'...] 就是上一步的login頁面 // to.matched.some(item => item.meta.requiresAuth) 這句的意思是 進入的路由頁需要登錄認證,取反就是不用登錄,直接通過 if (to.matched.length > 0 && !to.matched.some(item => item.meta.requiresAuth)) { next(); // 跳過,進入下一個導航鉤子。比如:在 /login 路由頁刷新頁面會走到此邏輯 } else { next({ path: ’/login’ }); } } else { // 現在有token了 if (!store.state.permission.permissionList) { // 如果沒有 permissionList,發請求獲取用戶權限列表 store.dispatch(’permission/FETCH_PERMISSION’).then(() => {next({ path: to.path, query: to.query }); }); } else { // 現在有 permissionList 了 if (to.path !== ’/login’) {if (to.matched.length === 0) { // 如果匹配到的路由形如 https://172.24.1.117/?id=xxx&name=xxx,表明是關聯跳轉時沒有權限,跳轉到403 next({ path: ’/403’ });} else if (queryChange) { // 跳轉之前將路由中查詢字符串為空的過濾掉,如 xxx.com?page=&size= 這種 next({ name: to.name, params: to.params, query: to.query });} else if (sessionStorage.isSysLock === ’true’ && to.path !== ’/sys-lock’) { next({ path: ’/sys-lock’ });} else { next();} } else {// 1.如果用戶手動在地址欄輸入 /login,重定向到之前的路由頁// next(from.fullPath);// 2.如果用戶手動在地址欄輸入 /login,清除token并刷新頁面,就會去到登錄頁store.commit(’goToLogin’); } } }});

(1)當用戶打開 localhost,此時還沒有 token,匹配的是空路由,我們重定向到登錄頁 next({ path: ’/login’ });(2)用戶在登錄頁刷新頁面,也會進入路由攔截,此時匹配的是 login 路由,而 login 路由是不需要登錄驗證的(requiresAuth 為空或者 false),所以直接跳過執行 next();(3)用戶在登錄頁輸入了用戶名和密碼,登錄成功,保存了 token,跳轉到 /home 路由;(4)此時進入路由攔截,已經有 token了,但是還沒有用戶權限 permissionList,然后發請求獲取用戶權限列表,得到權限后 next({ path: to.path, query: to.query }); 繼續往下走;(5)再次進入路由攔截,此時有 token 和 permissionList 了,就可以根據實際業務進行跳轉了。上面的代碼是判斷當前是不是 login 路由,如果用戶登錄后手動在地址欄輸入 /login,則清除 token 跳轉到登錄頁。其他的邏輯就跟具體業務相關了,就不細講了。

4、處理用戶權限

處理用戶權限,在 store.js 定義一個模塊 permission.js,專門用于處理用戶權限相關的邏輯,用戶權限列表、菜單列表都保存在此模塊;來看看 permission.js 主要做了什么:

/* permission.js *//* 由于權限這塊邏輯很多,所以在vuex添加了一個permission模塊來處理權限相關的邏輯和變量 */import httpRequest from ’@/assets/js/service/http’; // http請求import handleModule from ’@/assets/js/common/handle-module’; // 處理路由、側邊欄的公共函數import router, { dynamicRoutes } from ’@/router/index’; // 默認路由配置,動態路由配置import permissionRouter from ’@/router/router’; // 需要權限的路由配置// ...export default { // ... actions: { async FETCH_PERMISSION({ commit, state }) { // 初始化路由表,注意這里必須寫,router.beforeEach 路由攔截時,多次執行 FETCH_PERMISSION commit(’setPermission’, []); // 發請求獲取后端返回的用戶權限 let data = await getUserByToken(); let userPopedoms = data.userPopedoms || []; // 保存用戶的權限模塊(去除掉用戶管理和登錄),用戶管理模塊可以使用,權限列表 let userPopeList = userPopedoms.filter(v => v.requestMapping !== ’user-manage’ && v.requestMapping !== ’login’); commit(’setUserPopedoms’, userPopeList); // 根據權限篩選出我們設置好的路由并加入到 path=’/’ 的children,就是home路由的children下 let routes = handleModule.getRouter(userPopedoms, permissionRouter); let homeContainer = dynamicRoutes.find(v => v.path === ’/’); // 使用concat的目的是讓 分配給用戶的權限處于 children 的第0項 homeContainer.children = routes.concat(homeContainer.children); // 設置首頁重定向,重定向到用戶權限的第0項 homeContainer.redirect = homeContainer.children[0].name; // 根據權限生成左側導航菜單 let sidebarMenu = handleModule.getSidebarMenu(userPopeList); commit(’setMenu’, sidebarMenu); // 初始路由 let initialRoutes = router.options.routes; // 動態添加路由。只有刷新頁面才會清空動態添加的路由信息 router.addRoutes(dynamicRoutes); // 完整的路由表 commit(’setPermission’, [...initialRoutes, ...dynamicRoutes]); } },};

(1)首先,let data = await getUserByToken(); 發請求獲取用戶權限,得到 data,data.userPopedoms 格式大致如下:

[ { 'moduleGroupId': 1001, 'moduleGroupName': '部署管理', 'requestMapping': 'deploy-manage', }, { 'moduleGroupId': 1100, 'moduleGroupName': '系統管理', 'requestMapping': 'sys-manage', 'moduleList': [ { 'moduleId': 1101, 'moduleName': '系統日志', 'requestMapping': 'system-log', 'moduleGroupId': 1100, }, { 'moduleId': 1102, 'moduleName': '系統告警', 'requestMapping': 'sys-alert', 'moduleGroupId': 1100, }, ], }]

(2)然后,根據我們寫好的路由數組,進行對比,過濾得到我們要的路由。路由格式在上文“路由定義”的 router/router.js 已經提到。還要根據用戶權限處理得到側邊欄菜單。

為此,我們需要兩個處理函數,一個根據用戶權限列表和路由數組過濾得到最終路由,另一個根據用戶權限處理得到側邊欄菜單。所以另外專門創建了一個文件 handle-module.js 存放這兩個函數。

/* handle-module.js */const handleModule = { /** * 根據后臺返回的權限,以及配置好的所有路由,過濾出真實路由 * @param {Array} permissionList 后臺返回的用戶權限列表 * @param {Array} allRouter 前端配置好的所有動態路由的集合 * @return {Array} 過濾后的路由 */ getRouter(permissionList = [], allRouter = []) { // permissions 的格式為 ['deploy-manage', 'system-log'] let permissions = permissionList.reduce((acc, cur) => { if (cur.moduleList && cur.moduleList.length > 0) cur = cur.moduleList; return acc.concat(cur); }, []).map(v => v.requestMapping); return allRouter.filter(item => permissions.includes(item.meta.permitName)); }, /** * 根據后臺返回的權限,生成側邊欄 * @param {Array} permissionList 后臺返回的用戶權限列表 * @return {Array} sidebarMenu 生成的側邊欄數組 */ getSidebarMenu(permissionList = []) { let sidebarMenu = []; permissionList.forEach(item => { let menuItem = {name: item.requestMapping,title: item.moduleGroupName, }; menuItem.children = (item.moduleList || []).map(child => ({name: child.requestMapping,title: child.moduleName, })); sidebarMenu.push(menuItem); }); return sidebarMenu; }};export default handleModule;

(3)上面得到過濾后的路由數組后,加入到 path 為 ’/’ 的 children 下面

{ path: ’/’, name: ’home’, component: () => import(’@/views/home.vue’), meta: { requiresAuth: true, }, children: [ /* 將上面得到的路由加入到這里 */ // 用戶信息 {path: ’/user-info’,name: ’user-info’,component: () => import(’@/views/user-setting/user-info.vue’), }, ]}

(4)上面根據權限生成側邊欄菜單之后,保存在 store 待用。

(5)上面第三步將動態路由加入到 home 的 children 之后,就可以將 dynamicRoutes 加入到路由中了。router.addRoutes(dynamicRoutes);

(6)到了這里,路由就添加完了,也就是 FETCH_PERMISSION 操作完畢了,就可以在 action.then 里面調用 next({ path: to.path, query: to.query }); 進去路由,也就是進入 home。我們上面已經將 home 路由重定向為菜單的第一個路由信息,所以會進入系統菜單的第一個頁面。

刷新頁面后,根據 router.beforeEach 的判斷,有 token 但是沒有 permissionList ,會重新觸發 action 去發請求獲取用戶權限,之前的邏輯會重新走一遍,所以沒有問題。

退出登錄后,需要清除 token 并刷新頁面。因為是通過 addRoutes 添加路由的,而 vue-router 沒有刪除路由的 api,所以清除路由、清除 store 中存儲的各種信息,刷新頁面是最保險的。

相關文件的目錄截圖:

淺談vue權限管理實現及流程

四、總結

缺點:全局路由守衛里,每次路由跳轉都要做判斷;每次刷新頁面,需要重新發請求獲取用戶權限;退出登錄時,需要刷新一次頁面將動態添加的路由以及權限信息清空;

優點:菜單與路由分離,菜單的修改、添加、刪除由后端控制,利于后期維護;使用 addRoutes 動態掛載路由,可控制用戶不能在 url 輸入相關地址進行跳轉;

vue權限管理還有其他實現方式,大家可以根據實際業務考慮做調整,以上的實現方式是比較適合我們現有項目的需求的。以上,有問題歡迎提出交流,喜歡的話點個贊哦~

到此這篇關于淺談vue權限管理實現及流程的文章就介紹到這了,更多相關vue權限管理內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Vue
相關文章:
主站蜘蛛池模板: 中文视频在线 | 国产精品久久久久久久午夜片 | 亚洲激情综合 | 成人免费一区二区三区视频网站 | 欧美精品91 | 国产成人免费 | 日本视频黄| 日本五月婷婷 | 日本高清中文字幕 | 一级片在线观看 | 成人av教育 | 欧美日韩国产精品 | 久久9久久 | 国产精品婷婷午夜在线观看 | 亚洲精品欧美视频 | 99久久精品国产一区二区成人 | 中文在线a在线 | 国产乱叫456 | 日本在线小视频 | 久草视频免费看 | 91精品国产综合久久久久久 | 日韩午夜免费视频 | 一级黄色片子看看 | 国产精品美女久久久久久久久久久 | 三级网址日本 | 精品一区二区三区免费 | 视频一区 中文字幕 | 欧美成人免费在线视频 | 国产一级二级毛片 | 天天爽夜夜爽 | 在线观看亚洲一区二区三区 | 国产精品二区三区 | 成人在线播放 | 亚洲国产日韩一区 | 2019天天干| 亚洲精品永久免费 | 日韩精品久久 | 国产一区 | 国产午夜精品久久久久久久 | 国产中文字幕一区 | 国产美女一区二区 | 在线观看国产wwwa级羞羞视频 | 国产精品美女久久久久久免费 | 91操操| 黄色国产视频 | 狠狠色狠狠色综合网 | 国产男人天堂 | 国变精品美女久久久久av爽 | 国产精品一区二区三区四区五区 | 久久久久久国产精品高清 | www.亚洲一区 | 中文字幕日韩专区 | 欧美日韩在线视频观看 | 欧美一级艳情片免费观看 | 亚洲午夜精品 | 欧美午夜精品久久久 | 亚洲综合色视频在线观看 | 午夜成人免费视频 | 91精品国产日韩91久久久久久 | 日韩精品久久久久久 | 九九热这里只有精品在线观看 | 国产精品视频一区二区三区 | 欧美日一区二区 | 国产精品久久久久久久美男 | 在线观看免费的av | 越南性xxxx精品hd | 久久久久久亚洲 | 羞羞视频在线观免费观看 | 国产一区不卡视频 | 操操操影院 | 久久精品99| 国产高清在线 | 日本精品视频在线播放 | 天天天天爽 | 爱爱视频在线观看 | 国产毛片精品 | 亚洲欧美日韩在线 | 亚洲国产成人精品女人 | 午夜精品福利在线观看 | 91色视频在线观看 | 国产精品1区二区 | 中文字幕日韩欧美 | 操操网| 成人精品电影 | 欧美日韩电影一区二区 | 色视频网站在线观看一=区 日韩一二三区 | 黄色一级片在线看 | 97国产精品 | 日韩欧美视频一区 | 日韩成人一区 | 日韩欧美不卡 | 亚洲二区在线 | 一区二区三区四区日韩 | 欧美视频在线观看不卡 | 黄色最新网站 | 中文字幕av在线播放 | 在线亚洲免费 | 免费观看羞羞视频网站 | 中文字幕 亚洲一区 | 成人免费在线电影 | 精品久久久久一区二区国产 | 久久久久久亚洲 | 国产一区二区三区久久久久久久久 | 国产成人精品免高潮在线观看 | 99视频在线| 四虎网址| 日本黄色大片免费 | 久色91 | 九九视频这里只有精品 | 亚洲精品久久久久久一区二区 | h视频免费在线 | 国产精品久久久久久福利一牛影视 | 免费视频二区 | 久久另类ts人妖一区二区 | 精品三级在线观看 | 日韩视频在线免费观看 | 国产精品久久久久久久久久久久 | 国产区视频在线观看 | 一本一道久久a久久精品综合 | 韩日视频在线观看 | 一级电影免费在线观看 | 国产福利片在线观看 | 第一色视频 | 一区二区在线 | 久久高清| 久久com| 国产精品国产自产拍高清 | 妞干网国产 | 日韩av在线不卡 | 国产区亚洲 | 国产天堂网 | 欧美一区二区三区在线看 | 欧美日韩国产一区二区三区 | 日本欧美国产 | 精品国产乱码久久久久久1区2区 | 亚洲不卡 | 欧美一级毛片免费观看 | 国产精品久久久久久久久久久小说 | 午夜影视av | 在线观看日韩 | 欧美日韩电影一区二区三区 | 国产一级特黄aaa大片 | 日韩色图在线观看 | 一区二区欧美视频 | 亚洲欧美日韩在线 | 在线成人亚洲 | 国产精品毛片一区二区在线看 | 亚洲 欧美 精品 | 久久爱综合网 | 九九九在线 | 成人1区2区 | 黄色国产| 成人免费在线视频播放 | 日韩一区二区视频 | 91精品国产美女在线观看 | 日韩精品一区二区三区在线观看 | 欧美一区二区日韩 | 一级毛片久久久 | 久久精品欧美一区二区三区不卡 | 高清国产午夜精品久久久久久 | 亚洲一区二区三区爽爽爽爽爽 | 亚洲www永久成人夜色 | 日本亚洲欧美 | 国产精品成人观看视频国产奇米 | 国产精品久久国产精麻豆99网站 | 国产欧美精品一区二区三区四区 | 麻豆视频国产 | 国产传媒在线观看 | 国内精品久久久久久影视8 91一区二区在线观看 | 国产精品毛片 | 亚洲免费精品 | 神马久久久久久久久久 | 黄色影视网址 | 国产美女永久免费无遮挡 | 久久九九 | 亚洲综合激情网 | 久久久久久久国产精品 | 91精品国产欧美一区二区成人 | aaaaaa毛片| 亚洲欧美日韩在线 | 国产老头老太作爱视频 | 99久久久无码国产精品 | 久久婷婷香蕉 | 欧美精品免费在线观看 | 久久国产精品99国产 | 狠狠狠干| 日韩视频一区二区三区 | a级性视频 | 天天干天天草 | 一级片国产 | 国产日韩欧美综合 | 国产成人免费视频网站高清观看视频 | 欧美黄色激情 | 亚洲欧美另类在线 | 国产高清精品一区二区三区 | 午夜精品福利网 | 亚洲欧美一区二区三区四区 | 日韩专区视频 | 一区二区三区在线视频播放 | 剑来高清在线观看 | 岛国一区| 精品欧美乱码久久久久久 | av免费网站在线观看 | 欧美中文字幕一区 | 五月婷婷综合激情 | 亚洲成年人网站在线观看 | 亚洲欧美一区二区在线观看 | 综合激情av | 欧美日韩中文 | 91精品国产99 | 欧美中文字幕 | 久久久精品一区二区 | 国产成人av一区二区三区 | 日干夜操 | 免费黄色小视频 | 欧美极品一区二区三区 | 毛片a片 | 九九免费视频 | 久久久久久亚洲一区二区三区蜜臀 | 视频一区二 | 欧美日韩国产中文 | 91色在线 | 国产成人在线视频 | 成人a在线 | 黄色毛片在线看 | 一区二区三区在线观看视频 | 亚洲综合一二区 | 欧美jizzhd精品欧美巨大免费 | 先锋资源av在线 | 日日操天天操 | 日韩欧美第一页 | 成人欧美一区二区三区黑人孕妇 | 欧美综合久久 | 国产精品久久久久久婷婷天堂 | 国产一区二区三区四区在线观看 | 亚洲精品v | 黄色成人av| av黄色在线 | 亚洲国产成人精品女人久久久 | 欧美黄色一区 | 国产视频精品自拍 | 亚洲精品日韩综合观看成人91 | 亚洲美女视频一区二区三区 | 国产成人久久777777 | 亚洲成人精品 | 嫩草影院在线观看91麻豆 | 久久激情视频 | 国产精品www | 黄色国产在线看 | 久久精品123 | 国产激情精品一区二区三区 | 欧美日韩综合在线 | 欧美激情精品久久久久久免费 | 日韩在线视频观看免费 | 欧美8一10sex性hd | 午夜免费视频 | 免费观看日韩av | 久久草视频 | 国产区在线观看 | 久久国产精品一区二区三区 | 精品国产一区二区三区日日嗨 | 狠狠干欧美 | 欧美性一区二区 | 亚洲精品久久久久久下一站 | 久久精品国产99久久久 | 日韩av免费看 | 四虎黄色网 | 97视频免费在线观看 | 国产精品网站在线观看 | 婷婷久久五月天 | 日韩精品一区二区三区在线 | 亚洲精品在线播放 | 九一视频在线播放 | 精品国产乱码久久久久久1区2区 | 男女免费视频 | 欧美精品久久久久久久久老牛影院 | 日韩成人精品在线观看 | 日韩一区在线视频 | 国产精品久久国产精品 | 久久青青视频 | 蜜桃精品在线观看 | 国产免费自拍 | www.久久.com | 日韩亚洲在线 | 欧美视频精品 | 福利在线播放 | 午夜免费小视频 | 欧美日韩一区在线观看 | 日日爱视频 | 99免费精品 | 精品国产青草久久久久福利 | 毛片综合 | 日日操av| 国产亚洲精品v | 香蕉久久网 | 免费看国产一级特黄aaaa大片 | av一区二区在线播放 | 国产精品美女久久久久久久久久久 | 亚洲精品乱码久久久久久蜜桃图片 | 超碰中文字幕 | 日韩大尺度电影在线观看 | 中文字幕一区二区三区四区不卡 | 亚洲欧美日本在线 | 欧美一区二区三区免费电影 | 欧美国产日韩在线 | 日本视频免费高清一本18 | 精品香蕉一区二区三区 | 免费在线黄色av | 韩国精品一区二区三区 | 亚洲不卡视频在线 | 91亚洲福利 | 一区二区三区四区免费观看 | 成年无码av片在线 | 亚洲视频在线看 | 国产精品网站在线观看 | 影音先锋中文字幕在线 | 色视频网| 超黄视频在线观看 | 国产精品久久久精品 | 久久久国产精品入口麻豆 | 超碰最新网址 | 日韩无在线 | 亚洲一区电影 | 国产精品二区三区在线观看 | 亚洲自拍偷拍av | 国产日韩欧美三级 | 国产日韩欧美一区 | 天天精品在线 | 国产精品成人一区二区三区夜夜夜 | 国产成人高清视频 | 亚洲在线播放 | 一a级毛片 | 日本久久精品视频 | 99爱精品在线 | 日韩中文字幕在线免费 | 精品国产不卡一区二区三区 | 国产精品久久久久一区二区三区 | 亚洲xx视频| 欧美视频在线观看一区 | 国产精品福利在线观看 | 亚洲一区中文字幕在线 | 91免费观看视频 | 国产精品一区二 | 欧美激情一区二区三区四区 | 国产日韩欧美在线观看 | 欧美一区 | 狠狠亚洲 | 欧美日韩国产综合网 | 亚洲中字幕女 | 九色在线播放 | 国产xxxxxxxxxx| 成人一级片在线观看 | 天天插天天操 | 日本一区二区精品视频 | 狠狠搞狠狠搞 | 国产一区二区三区精品久久久 | 欧美成人精品一区二区男人看 | 成人欧美一区二区三区在线观看 | 国产成人精品高清久久 | 中文亚洲欧美 | 国产精品伦一区二区三级视频 | 精品国产三级 | 亚洲精品久久久久久一区二区 | 欧美性猛交一区二区三区精品 | 综合色成人 | 国产精品美女久久久久久久久久久 | 色婷婷一区二区三区四区 | 国产伦精品一区二区 | 久久久久久亚洲 | 亚洲精品一区二三区不卡 | 国产a一三三四区电影 | 射久久| 色婷婷一区二区三区四区 | 91在线观看视频 | 亚洲精品一区二区三区 | av网站免费在线观看 | 欧美日韩不卡合集视频 | 国产日韩欧美一区二区在线观看 | chengrenzaixian| 91精品中文字幕一区二区三区 | 高清久久| 91在线视频免费播放 | 日本中文字幕电影 | 国产日韩精品一区二区 | 欧美日韩高清不卡 | 不卡视频一区二区 | 精品影院 | 久久综合亚洲 | 亚洲精品一区二区三区在线播放 | 古风h啪肉1v1摄政王 | 人人做人人澡人人爽欧美 | 视频精品一区二区 | а√天堂中文在线资源8 | 国产精品视频yy9299一区 | 国产视频1区 | 国产97人人超碰caoprom | 成人免费视频视频 | 国产精品嫩草55av | 欧美日韩在线观看一区二区 | 亚洲国产中文字幕 | 网站一区二区三区 | 亚洲精品3 | 国产在线网 | 国产91视频在线观看 | 亚洲国产精品t66y | 玖玖精品 | 免费在线成人 | 国产噜噜噜噜噜久久久久久久久 | 欧美午夜电影 | av毛片 | 蜜桃精品久久久久久久免费影院 | 日日夜夜天天 | 欧美日韩亚洲在线 | 国产午夜精品一区二区三区 | 久久久亚洲综合 | av中文字幕在线 | 日本美女一区二区三区 | 精品影院 | 日韩欧美视频一区 | 精品久久国产老人久久综合 | 日本三级在线视频 | 亚洲自拍偷拍av | 久久久精品影院 | 成人亚洲精品 | 日韩欧美在线综合 | 日韩一区二区三区福利视频 | 永久av| 在线精品亚洲欧美日韩国产 | 久草在线| 成人免费一区二区三区视频网站 | 午夜合集 | 一区二区三区在线播放 | 亚洲中午字幕 | 中文字幕一区二区三区不卡 | 91成人短视频在线观看 | 国产精品久久久久久久久免费丝袜 | 青草青草久热精品视频在线观看 | 中文字幕av第一页 | 日韩在线不卡 | 黄色高清视频在线观看 | 天天澡天天狠天天天做 | 日本在线观看视频一区 | 久久综合一区二区三区 | 中文字幕精品一区久久久久 | 午夜私人影院 | 欧美成人区 | 欧美精品久久久 | 艹艹网 | 久久中文字幕视频 | 91精品国产色综合久久不卡98口 | 欧美黑人做爰xxxⅹ 国产精品一区二区视频 | 欧美一区二 | 日摸夜操 | 99看片 | av网站观看 | 日本网站在线免费观看 | 国产高清美女一级a毛片久久 | 不卡视频一区二区三区 | 精品国产一区二区三区在线观看 | 毛片站 | 亚洲情综合五月天 | 日韩在线不卡一区 | 国产福利一区二区三区四区 | 成人av播放| 香蕉91| 成人在线视频网 | 99精品久久精品一区二区爱城 | 日韩欧美一区二区在线观看 | 午夜在线观看视频网站 | 日本不卡一区二区 | 91亚洲精品久久久 | 日韩精品一区二区三区中文字幕 | 日韩小视频 | 在线观看亚洲视频 | 欧美综合精品 | 不卡一区二区三区四区 | 欧美男人的天堂 | 欧美一区二区免费 | 精品国产一区二区三区小蝌蚪 | 亚洲va欧美va天堂v国产综合 | 中文字幕本久久精品一区 | 国产欧美精品 | 亚洲国产成人av好男人在线观看 | 日韩在线观看精品 | 久久成人国产精品 | 精品91在线视频 | 成人区一区二区三区 | 亚洲免费视频一区二区 | 精品一二区 | 午夜成人免费视频 | 亚洲一区二区三区蜜桃 | 在线看av网址 | 日韩毛片在线视频 | 成人亚洲一区二区 | av网站免费在线观看 | 亚洲精品久久久久久久久久久久久 | 国产一区在线免费 | 久久国产传媒 | 久久www免费人成看片高清 | 精品免费久久 | 国产精品久久久久久久久久大牛 | 日韩国产在线 | 欧美日韩亚洲国内综合网 | 91精品在线播放 | 国产一区中文字幕 | 色九九九| 91佛爷在线观看 | 亚洲福利影院 | 国产成人精品一区二区三区四区 | 中文字幕二区三区 | 久久免费视频3 | 国产乡下妇女做爰视频 | 欧美激情在线精品一区二区三区 | 蜜桃视频一区 | 欧美精品免费在线 | 4h影视| www.日韩在线视频 | 精品久久久一 | 欧美精品亚洲精品 | 狠狠爱www人成狠狠爱综合网 | 日本视频中文字幕 | 99国产视频 | 秋霞电影院午夜伦 | 欧美视频免费在线 | 欧美福利视频 | 一级毛片视频播放 | 91视频三区| 久久久精品一区二区 | 二区影院 | 电影91久久久 | 九九r热| 久久久久国产视频 | 欧美狠狠操 | 久久精品久久久久电影 | 91性高湖久久久久久久久网站 | 精品一区二区不卡 | 精品96久久久久久中文字幕无 | 国产91在线播放精品 | 性色av一区二区三区免费看开蚌 | 精品久久久久久久久久久久久久 | 欧美三级在线视频 | 成人午夜激情 | 国产精品成人3p一区二区三区 | 久99视频| 9se成人免费网站 | 久久69精品久久久久久久电影好 | 在线激情网 | 91精品国产99 | 久草在线观看福利视频 | 国产精品久久久久久吹潮 | 91精品免费 | 99精品视频在线 | 国产精品久久久久久久久久小说 | 91成人在线 | www.久久视频 | 夜夜艹| 国产极品视频在线观看 | 欧美videosex性欧美黑吊 | 麻豆av在线播放 | 精品无码久久久久久国产 | 亚洲午夜精品一区二区三区他趣 | 欧美日韩中文 | 羞羞的视频网站 | 欧美一卡二卡在线观看 | 久久天天躁狠狠躁夜夜躁2014 | 国产精品久久久久久一级毛片 | 日韩精品久久久久久 | 国产精品女人视频 | 激情综合五月 | 日韩福利片 | 亚洲国产精品久久久久久 | 久久精品一区 | 欧美一级毛片久久99精品蜜桃 | 欧美精品一区二区在线观看 | 91精品国产乱码久久蜜臀 | 成人免费视频网站 | 国产精品久久久久久久久久久久久 | 91视频在线看 | 91在线观看免费 | 在线观看免费视频黄 | 天天操天天玩 | 成人精品视频一区二区三区 | 欧美一二三四成人免费视频 | 国产在线中文字幕 | 久久av网 | h视频免费在线 | 国产一区二区三区久久 | 超碰在线人人 | 日韩国产一区 | 亚洲高清视频在线 | 国产精品亚洲视频 | 91国偷自产一区二区三区亲奶 | 欧美综合激情 | 无套内谢孕妇毛片免费看红桃影视 | 欧美日韩中文在线观看 | 欧美精品一区二区三区在线播放 | 色悠久久久 | 天堂国产 | 久久成人精品视频 | 亚洲视频在线观看一区二区三区 | 亚洲性视频 | 黑人巨大精品欧美黑白配亚洲 | 中文av在线免费观看 | 狠狠操综合网 | 成人精品视频免费在线观看 | av在线日韩| 久久噜噜噜精品国产亚洲综合 | 亚洲成人日韩 | 中文字幕一区二区三区四区 | 国产成人免费网站 | 亚洲在线免费观看 | 最近中文字幕免费观看 | 99视频这里有精品 | 北条麻妃一区二区三区中文字幕 | 日韩视频精品在线 |