久久亚洲成a人片熟女精品色一区二区三区|国产精品视频第一精品视频|av天堂热无码手机版|亚洲?v无码久久无遮挡|国产精品偷伦视频免费观看国产|麻豆国产自产精品丰满熟妇|av无码av不卡一区二区|久久亚洲精品中文字

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營(yíng)的一線實(shí)戰(zhàn)洞察。

Discuz! QQ登錄插件OAuth2.0授權(quán)回調(diào)與賬號(hào)綁定實(shí)戰(zhàn)

Discuz! QQ登錄插件OAuth2.0授權(quán)回調(diào)與賬號(hào)綁定實(shí)戰(zhàn) 簡(jiǎn)介面向Discuz!論壇站長(zhǎng)與社區(qū)運(yùn)營(yíng)者的QQ快捷登錄插件改進(jìn)版2.4由北岸團(tuán)隊(duì)對(duì)原版登錄流程進(jìn)行優(yōu)化主要解決論壇注冊(cè)步驟繁瑣、QQ用戶轉(zhuǎn)化率偏低以及登錄入口兼容性不足等問(wèn)題。壓縮包共61個(gè)文件整體約1MB內(nèi)含24個(gè)php文件承載授權(quán)回調(diào)、賬號(hào)綁定、安裝卸載與移動(dòng)端登錄邏輯12個(gè)jpg和11個(gè)png用于界面與按鈕素材8個(gè)htm模板配合4個(gè)xml插件配置另有g(shù)if、html等輔助文件覆蓋PC與移動(dòng)端接入場(chǎng)景。已有430人學(xué)習(xí)下載在Discuz!插件使用者中具備一定參考度。資料提供多編碼插件配置、QQ回調(diào)與會(huì)員綁定處理、移動(dòng)端登錄類及幫助頁(yè)模板便于管理員按QQ互聯(lián)要求填入IDKEY后完成對(duì)接也方便開(kāi)發(fā)者排查授權(quán)回調(diào)、賬號(hào)綁定和頁(yè)面展示問(wèn)題減少?gòu)牧愀脑斓卿浤K的時(shí)間適合需要快速上線QQ登錄、減少重復(fù)開(kāi)發(fā)的站長(zhǎng)與二次開(kāi)發(fā)者參考。1. 按鈕點(diǎn)下去白屏問(wèn)題多半不在插件本身上周幫人看一個(gè) DZ 論壇前臺(tái) QQ 登錄按鈕點(diǎn)下去跳授權(quán)頁(yè)、點(diǎn)同意、回來(lái)一片白。站長(zhǎng)說(shuō)換過(guò)三套插件都一樣最后發(fā)現(xiàn)是回調(diào)地址末尾多了一個(gè)斜杠。這套 DZ QQ 登錄插件改進(jìn)版 2.4就是在反復(fù)踩這類坑之后攢出來(lái)的東西授權(quán)、回調(diào)、綁定、解綁四條鏈路收在一個(gè)插件目錄里后臺(tái)填好 appid 和回調(diào)地址就能跑適合還在用 Discuz! X3.4/X3.5 搭垂直社區(qū)、又不想讓新用戶卡在郵箱驗(yàn)證這一步的站長(zhǎng)和二次開(kāi)發(fā)者。下面按“鏈路怎么走—文件怎么放—參數(shù)怎么填—數(shù)據(jù)怎么寫(xiě)—坑在哪”拆開(kāi)講能抄的部分直接抄抄完把域名換成自己的就行。2. OAuth2.0 授權(quán)碼流程與插件目錄先把鏈路和文件看明白2.1 授權(quán)碼模式在這套插件里是怎么跑通的QQ 互聯(lián)走的是標(biāo)準(zhǔn)授權(quán)碼模式authorization code四步握手跳授權(quán)頁(yè)拿code、用code換access_token、拿access_token換openid、拿openid和 token 拉用戶資料。這四步里只有第一步是用戶在瀏覽器里完成的后三步全部在服務(wù)端用 curl 走所以插件真正容易出錯(cuò)的地方全在服務(wù)端而不是前端按鈕。第一步的 URL 由插件主類拼出來(lái)邏輯大致是這樣?php // source/plugin/qqlogin/qqlogin.class.php 片段生成授權(quán)地址 $state substr(md5($_G[uid] . TIMESTAMP . random(8)), 0, 16); // state 同時(shí)落 cookie 和插件表回調(diào)時(shí)兩邊都要對(duì)得上 dsetcookie(qqlogin_state, $state, 600); C::t(#qqlogin#qqlogin_state)-insert(array( state $state, uid (int)$_G[uid], dateline TIMESTAMP, ), false, true); $params array( response_type code, client_id $this-appid, // 開(kāi)放平臺(tái)分配的應(yīng)用 ID純數(shù)字 redirect_uri $this-callback, // 必須與開(kāi)放平臺(tái)后臺(tái)登記的一字不差 state $state, // 防 CSRF也用來(lái)區(qū)分是哪個(gè)入口發(fā)起的 scope get_user_info, ); $authorize_url https://graph.qq.com/oauth2.0/authorize? . http_build_query($params);state這一段是整個(gè)流程里最容易被偷懶省掉的部分。省掉之后功能也能跑但你會(huì)丟掉兩樣?xùn)|西一是 CSRF 防護(hù)二是“這次登錄是從 PC 端還是手機(jī)端發(fā)起的”這個(gè)上下文。改進(jìn)版 2.4 把 state 存成了獨(dú)立表pre_plugin_qqlogin_state而不是塞進(jìn)$_SESSION原因是 DZ 的 session 在跨域回調(diào)回來(lái)時(shí)經(jīng)常已經(jīng)換了 session id尤其是站點(diǎn)開(kāi)了 CDN 又沒(méi)做 cookie 透?jìng)鞯臅r(shí)候讀 session 讀到空的概率相當(dāng)高。第二步換 token 的請(qǐng)求在callback.inc.php里參數(shù)順序不重要但redirect_uri必須和第一步完全一致連 URL 編碼方式都要一致。第三步取 openid 返回的是一段callback( {client_id:xxx,openid:yyy} );的包裹文本插件里統(tǒng)一加了fmtjson省掉正則解析這個(gè)細(xì)節(jié)后面第 3 章會(huì)用 curl 單獨(dú)驗(yàn)證。2.2 解包看目錄哪些文件在干活把壓縮包解開(kāi)核心就是一個(gè)source/plugin/qqlogin/目錄外面還有一段后臺(tái)配置用的 XML。文件清單和職責(zé)對(duì)應(yīng)關(guān)系如下文件/目錄作用二次開(kāi)發(fā)改動(dòng)頻率discuz_plugin_qqlogin.xml安裝描述文件定義插件變量、模塊、鉤子掛載點(diǎn)低除非要加新配置項(xiàng)qqlogin.class.php主類繼承plugin_qqlogin管鉤子和入口分發(fā)高callback.inc.php回調(diào)入口處理 code、換 token、寫(xiě)綁定高bind.inc.php首次登錄的綁定頁(yè)邏輯處理用戶名沖突中unbind.inc.php解綁清common_member_connect對(duì)應(yīng)記錄低table/table_qqlogin_state.phpstate 表的 DB 層封裝低template/按鈕模板、綁定頁(yè)模板、移動(dòng)端模板中static/js/qqlogin.js彈窗與跳轉(zhuǎn)控制移動(dòng)端 touch 綁定也在這里中看清這個(gè)結(jié)構(gòu)有個(gè)實(shí)際好處出問(wèn)題的時(shí)候能立刻定位是“配置層”還是“代碼層”。比如授權(quán)頁(yè)能打開(kāi)但回調(diào) 500問(wèn)題一定在callback.inc.php之后按鈕點(diǎn)了沒(méi)反應(yīng)問(wèn)題在static/js或模板跟 OAuth 一點(diǎn)關(guān)系都沒(méi)有。我一般排查前先做這個(gè)二分能省掉一半時(shí)間。discuz_plugin_qqlogin.xml里的var節(jié)點(diǎn)定義了后臺(tái)可見(jiàn)的配置項(xiàng)常見(jiàn)的就四個(gè)appid、appkey、callback、allownewuser。其中allownewuser控制“沒(méi)綁定過(guò)的 QQ 是否允許自動(dòng)創(chuàng)建新賬號(hào)”社區(qū)類站點(diǎn)一般設(shè) 1內(nèi)部論壇建議設(shè) 0只允許已有賬號(hào)綁定防止外人隨便注冊(cè)進(jìn)來(lái)。2.3 安裝與后臺(tái)配置的落地步驟裝之前先備份source/plugin/和數(shù)據(jù)庫(kù)這一步別省。DZ 插件裝壞了會(huì)導(dǎo)致后臺(tái)應(yīng)用列表白屏恢復(fù)起來(lái)比重裝還麻煩。上傳和權(quán)限給到位# 在論壇根目錄執(zhí)行假設(shè)包已解壓到 /tmp/qqlogin cp -r /tmp/qqlogin/source/plugin/qqlogin ./source/plugin/ # 插件目錄給 web 用戶可讀可執(zhí)行不要 777 chown -R www:www ./source/plugin/qqlogin find ./source/plugin/qqlogin -type d -exec chmod 755 {} \; find ./source/plugin/qqlogin -type f -exec chmod 644 {} \; # 清一遍模板與緩存目錄避免舊緩存打架 rm -rf ./data/template/* ./data/cache/*命令本身沒(méi)什么玄學(xué)重點(diǎn)是最后那兩行。DZ 的模板緩存是按插件標(biāo)識(shí)緩存的第二次裝同標(biāo)識(shí)插件時(shí)如果不清理前臺(tái)很可能還是舊按鈕的 HTML你會(huì)誤以為是插件沒(méi)生效。chown也別圖省事用 777插件目錄里有 PHP 文件777 等于給人留了寫(xiě) shell 的口子。上傳完成后進(jìn)后臺(tái)「應(yīng)用 → 插件 → 未安裝插件」找到 QQ 登錄點(diǎn)安裝。安裝過(guò)程會(huì)建兩張表pre_plugin_qqlogin_state和綁定關(guān)系表。裝完在插件設(shè)置里填四個(gè)參數(shù)參數(shù)填什么常見(jiàn)填錯(cuò)appid開(kāi)放平臺(tái)應(yīng)用詳情頁(yè)的 APP ID純數(shù)字誤填成 APP Keyappkey應(yīng)用密鑰字母數(shù)字混合不要帶空格復(fù)制時(shí)帶進(jìn)了換行callback完整回調(diào)地址含協(xié)議和域名少了https://或末尾多了/allownewuser1 允許自動(dòng)注冊(cè)0 僅允許綁定與站點(diǎn)注冊(cè)策略沖突填完必須點(diǎn)一次「更新緩存」DZ 的插件變量是緩存在pre_common_cache里的不更新緩存你改十遍后臺(tái)前臺(tái)讀到的還是舊值。這個(gè)坑我在第 5 章還會(huì)再提一次因?yàn)樗霈F(xiàn)頻率實(shí)在太高。最后一步是跑到前臺(tái)實(shí)際點(diǎn)一次。別用管理員賬號(hào)測(cè)管理員登錄會(huì)被 DZ 的connect邏輯特殊處理測(cè)出來(lái)的結(jié)果和普通用戶不一致。開(kāi)一個(gè)瀏覽器無(wú)痕窗口用沒(méi)注冊(cè)過(guò)的普通身份走一遍完整流程能看到綁定頁(yè)、能填用戶名、能登錄成功才算真裝好了。3. 回調(diào)地址與 appid 配置三個(gè)參數(shù)決定成敗3.1 redirect_uri 的三處一致性校驗(yàn)回調(diào)地址是這個(gè)插件里最容易翻車的參數(shù)沒(méi)有之一。它同時(shí)存在于三個(gè)地方開(kāi)放平臺(tái)后臺(tái)登記的授權(quán)回調(diào)域、DZ 插件后臺(tái)配置的callback、以及callback.inc.php里拼給 token 接口的那個(gè)值。這三處必須完全一致任何一處不同都會(huì)在換 token 那一步拿到error100010之類的返回?!耙恢隆钡呐卸ū榷鄶?shù)人想的嚴(yán)格。http和https算兩個(gè)地址帶www和不帶www算兩個(gè)末尾有沒(méi)有斜杠算兩個(gè)帶不帶非標(biāo)準(zhǔn)端口比如:8080算兩個(gè)。測(cè)試環(huán)境從http://test.xxx.com換到https://www.xxx.com三處都得改漏一處就白屏。我的做法是把這個(gè)地址做成唯一來(lái)源插件后臺(tái)填一次代碼里全部讀配置不硬編碼?php // callback.inc.php 開(kāi)頭回調(diào)地址統(tǒng)一從插件變量取不做任何拼接 $this-callback $_G[cache][plugin][qqlogin][callback]; if (empty($this-callback)) { showmessage(qqlogin_callback_missing, , array(), array(handle false)); } // 換 token 時(shí)原樣帶上不 urldecode、不重新拼參數(shù) $token_url https://graph.qq.com/oauth2.0/token?grant_typeauthorization_code . client_id . $this-appid . client_secret . $this-appkey . code . urlencode($code) . redirect_uri . urlencode($this-callback) . fmtjson;注意urlencode只加在參數(shù)值上整個(gè) URL 不能再編一次否則https://里的冒號(hào)和斜杠會(huì)被編成%3A%2F%2F服務(wù)端解出來(lái)是個(gè)壞地址。這個(gè)錯(cuò)誤的表現(xiàn)很迷惑授權(quán)頁(yè)能正常打開(kāi)因?yàn)榈谝徊綖g覽器會(huì)自動(dòng)處理編碼只有回調(diào)那一步失敗很多人會(huì)誤判成 appkey 錯(cuò)了。3.2 appid/appkey 與簽名參數(shù)appid和appkey一個(gè)是對(duì)外的身份標(biāo)識(shí)一個(gè)是對(duì)內(nèi)的密鑰性質(zhì)完全不同。appid出現(xiàn)在前端跳轉(zhuǎn) URL 里泄露了無(wú)所謂appkey只在服務(wù)端換 token 時(shí)用絕不能出現(xiàn)在任何前端可見(jiàn)的地方。我見(jiàn)過(guò)有模板把a(bǔ)ppkey寫(xiě)進(jìn) JS 變量方便“調(diào)試”這等于把應(yīng)用密鑰公開(kāi)了。state的校驗(yàn)邏輯也在這層。改進(jìn)版 2.4 用“cookie 數(shù)據(jù)表”雙份比對(duì)?php // 回調(diào)第一件事校驗(yàn) state兩個(gè)來(lái)源必須同時(shí)命中 $state isset($_GET[state]) ? trim($_GET[state]) : ; $cookie_state isset($_COOKIE[qqlogin_state]) ? $_COOKIE[qqlogin_state] : ; if (empty($state) || empty($cookie_state) || !hash_equals($cookie_state, $state)) { showmessage(qqlogin_state_invalid, , array(), array(handle false)); } // 命中后立刻刪掉state 一次性使用 C::t(#qqlogin#qqlogin_state)-delete_by_state($state); dsetcookie(qqlogin_state, , -1);用hash_equals而不是是防止時(shí)序攻擊雖然在這個(gè)場(chǎng)景下風(fēng)險(xiǎn)很低但成本幾乎為零沒(méi)理由不用。刪除也必須在校驗(yàn)通過(guò)后立刻做否則同一個(gè) state 可以被重放攻擊者拿到一次回調(diào) URL 就能反復(fù)觸發(fā)綁定動(dòng)作。access_token的緩存策略也值得說(shuō)一句。token 默認(rèn)有效期 90 天refresh_token30 天內(nèi)可以續(xù)期。插件把 token 存在common_member_connect.conuintoken里每次登錄前先查有沒(méi)有可用 token沒(méi)有才重新走授權(quán)。這樣用戶第二次點(diǎn)登錄時(shí)是靜默的不會(huì)反復(fù)彈授權(quán)頁(yè)。但要注意用戶在開(kāi)放平臺(tái)那邊“取消授權(quán)”之后本地緩存的 token 會(huì)失效插件必須能識(shí)別error100016這類返回并清掉本地記錄否則用戶會(huì)卡在“點(diǎn)了沒(méi)反應(yīng)”的狀態(tài)里出不來(lái)。3.3 用 curl 先跑通授權(quán)鏈路再回插件排查這類問(wèn)題我習(xí)慣先繞開(kāi) DZ 和瀏覽器用 curl 把手動(dòng)流程走一遍。這樣能明確區(qū)分是“平臺(tái)側(cè)配置問(wèn)題”還是“插件代碼問(wèn)題”。# 變量先準(zhǔn)備好值從插件后臺(tái)和開(kāi)放平臺(tái)后臺(tái)抄過(guò)來(lái) APPID你的appid APPKEY你的appkey REDIRECT_URIhttps://bbs.example.com/plugin.php?idqqlogin:callback CODE瀏覽器回調(diào)地址里 code 后面的那串 # 第 2 步code 換 token curl -s https://graph.qq.com/oauth2.0/token?grant_typeauthorization_codeclient_id${APPID}client_secret${APPKEY}code${CODE}redirect_uri${REDIRECT_URI}fmtjson # 第 3 步token 換 openid curl -s https://graph.qq.com/oauth2.0/me?access_token${ACCESS_TOKEN}fmtjson # 第 4 步拉用戶資料看 nickname 能不能取到 curl -s https://graph.qq.com/user/get_user_info?access_token${ACCESS_TOKEN}oauth_consumer_key${APPID}openid${OPENID}第二步返回里如果帶error基本可以斷定是三處redirect_uri不一致把返回的error_description讀一遍比在插件里瞎猜快得多。第三步返回openid說(shuō)明 appkey 是對(duì)的。第四步返回的nickname里可能帶表情符號(hào)DZ 的老表結(jié)構(gòu)是utf8不是utf8mb4直接入庫(kù)會(huì)把表情截?cái)嗌踔翀?bào)錯(cuò)插件里做了strip_emoji過(guò)濾這個(gè)在第 4 章會(huì)講到。code是一次性的有效期很短通常幾分鐘。如果第二步報(bào)code expired回瀏覽器重新點(diǎn)一次登錄拿新 code 就行別對(duì)著舊 code 反復(fù)試。curl 驗(yàn)證通過(guò)之后再回插件點(diǎn)一次如果插件還是失敗而 curl 成功問(wèn)題就一定在插件的代碼路徑上重點(diǎn)看callback.inc.php有沒(méi)有對(duì)參數(shù)做了多余處理。4. 賬號(hào)綁定與用戶表寫(xiě)入從 openid 到 uid 的落地邏輯4.1 connect 表與 common_member 的對(duì)應(yīng)關(guān)系OAuth 鏈路走通只是拿到身份真正把“這個(gè) QQ 是誰(shuí)”落到“這個(gè)人是論壇的哪個(gè) uid”靠的是common_member_connect這張表。它和common_member是一對(duì)一關(guān)系uid做主鍵conopenid上必須有唯一索引CREATE TABLE IF NOT EXISTS pre_common_member_connect ( uid int(10) unsigned NOT NULL, conisbind tinyint(1) unsigned NOT NULL DEFAULT 0, conopenid char(32) NOT NULL DEFAULT , conuin char(40) NOT NULL DEFAULT , conuintoken char(32) NOT NULL DEFAULT , conqqnick varchar(100) NOT NULL DEFAULT , condeletetime int(10) unsigned NOT NULL DEFAULT 0, PRIMARY KEY (uid), UNIQUE KEY conopenid (conopenid), KEY conisbind (conisbind) ) ENGINEInnoDB DEFAULT CHARSETutf8mb4;conopenid上的唯一索引不是可選項(xiàng)。缺了它并發(fā)情況下同一個(gè) QQ 可能綁出兩個(gè) uid用戶下次登錄隨機(jī)命中其中一個(gè)表現(xiàn)為“我的帖子怎么少了一半”。conuintoken存的是 access_token注意長(zhǎng)度給夠別用char(16)這種拍腦袋的長(zhǎng)度。condeletetime是軟刪除標(biāo)記用戶解綁時(shí)不物理刪除記錄只置這個(gè)字段。這么設(shè)計(jì)的原因是防止“解綁后馬上重綁”觸發(fā)唯一索引沖突同時(shí)也留了一條審計(jì)痕跡。真要徹底清理由定時(shí)任務(wù)處理超過(guò)一定天數(shù)的記錄。4.2 綁定、解綁與重名沖突的處理代碼首次登錄的判斷順序很關(guān)鍵必須“先查 openid再?zèng)Q定是登錄還是注冊(cè)”?php // callback.inc.php拿到 openid 之后的核心分發(fā)邏輯 $openid daddslashes($openid); $bind C::t(#qqlogin#qqlogin_bind)-fetch_by_openid($openid); if ($bind $bind[uid]) { // 已綁定直接寫(xiě)登錄態(tài)更新 token C::t(#qqlogin#qqlogin_bind)-update_token($bind[uid], $access_token); setloginstatus(array(uid $bind[uid], username $bind[username]), 2592000); showmessage(qqlogin_succeed, dreferer(), array(), array(handle false)); } // 未綁定allownewuser 為 0 時(shí)直接拒絕 if (!$_G[cache][plugin][qqlogin][allownewuser]) { showmessage(qqlogin_not_bind, , array(), array(handle false)); } // 允許注冊(cè)則跳到綁定頁(yè)由用戶確認(rèn)用戶名 include template(qqlogin:bind);setloginstatus的第三個(gè)參數(shù)是 cookie 有效期單位秒2592000是 30 天。這個(gè)值別設(shè)太長(zhǎng)社區(qū)類站點(diǎn)一般 7 到 30 天比較合適。重名沖突發(fā)生在自動(dòng)注冊(cè)那一步。QQ 昵稱里有大量重復(fù)直接拿昵稱當(dāng)用戶名注冊(cè)第二次就會(huì)撞common_member的用戶名唯一索引。插件的做法是加后綴遞增?php // bind.inc.php用戶名去重最多試 20 次 $base preg_replace(/[^\x{4e00}-\x{9fa5}a-zA-Z0-9_]/u, , $nickname); $base $base ? qquser : mb_substr($base, 0, 12, UTF-8); $username $base; for ($i 1; $i 20; $i) { if (!C::t(common_member)-fetch_by_username($username)) { break; } $username $base . _ . $i; } if ($i 20) { showmessage(qqlogin_username_conflict, , array(), array(handle false)); }preg_replace那行把昵稱里的表情和標(biāo)點(diǎn)全部濾掉只留中文、字母、數(shù)字、下劃線。不過(guò)濾的話utf8表直接報(bào)Incorrect string value。mb_substr限長(zhǎng) 12 是照顧 DZ 默認(rèn)用戶名長(zhǎng)度限制改過(guò)站點(diǎn)配置的按自己的來(lái)。4.3 老用戶遷移把歷史賬號(hào)掛到 openid 上站點(diǎn)從別的方式切過(guò)來(lái)時(shí)會(huì)有一批“已經(jīng)在論壇注冊(cè)過(guò)、但沒(méi)綁定過(guò) QQ”的老用戶。這批人第一次點(diǎn) QQ 登錄會(huì)走到注冊(cè)分支結(jié)果多出一個(gè)新賬號(hào)帖子還在老賬號(hào)上用戶會(huì)直接罵人。處理辦法是在綁定頁(yè)給一個(gè)“已有賬號(hào)”入口讓用戶輸入用戶名密碼驗(yàn)證一次驗(yàn)證通過(guò)后把 openid 掛到老 uid 上-- 遷移腳本把已知對(duì)應(yīng)關(guān)系的用戶批量補(bǔ)綁定記錄 INSERT INTO pre_common_member_connect (uid, conisbind, conopenid, conuin, conuintoken, conqqnick, condeletetime) SELECT m.uid, 1, t.openid, , , t.nickname, 0 FROM pre_common_member m INNER JOIN pre_plugin_qqlogin_migrate t ON t.username m.username WHERE m.uid 0 ON DUPLICATE KEY UPDATE conisbind 1, conqqnick VALUES(conqqnick);ON DUPLICATE KEY UPDATE讓腳本可以重復(fù)跑跑第二遍不會(huì)報(bào)主鍵沖突也不會(huì)把已有記錄改壞。pre_plugin_qqlogin_migrate是臨時(shí)對(duì)照表跑完就刪。執(zhí)行前先在從庫(kù)或者備份上跑一遍SELECT版本確認(rèn)行數(shù)和預(yù)期對(duì)得上血淚經(jīng)驗(yàn)是這類腳本一定要先看結(jié)果再落庫(kù)。5. 避坑與排查五條踩坑記錄現(xiàn)象一回調(diào)后整頁(yè)白屏日志里沒(méi)有任何 DZ 報(bào)錯(cuò)。原因通常是 PHP 致命錯(cuò)誤被display_errors關(guān)掉了或者插件文件帶 BOM 頭導(dǎo)致headers already sent。解決臨時(shí)在config/config_global.php里開(kāi)$_config[debug] 1去data/log/下看當(dāng)天的xxx_log.phpBOM 用grep -rl $\xEF\xBB\xBF source/plugin/qqlogin/一次就能找出來(lái)批量轉(zhuǎn)成無(wú) BOM 的 UTF-8?,F(xiàn)象二授權(quán)頁(yè)能打開(kāi)點(diǎn)同意后回到站點(diǎn)提示參數(shù)錯(cuò)誤。原因是三處redirect_uri不一致或者callback參數(shù)被二次 URL 編碼。解決按第 3 章的辦法先用 curl 單獨(dú)驗(yàn)證看返回的error_description。改完配置記得更新緩存插件變量讀的是緩存不是數(shù)據(jù)庫(kù)?,F(xiàn)象三用戶每次點(diǎn)登錄都變成新注冊(cè)賬號(hào)越積越多。原因是common_member_connect缺conopenid唯一索引或者判斷邏輯寫(xiě)反了先查 uid 再查 openid。解決先SHOW INDEX FROM pre_common_member_connect確認(rèn)唯一索引在再檢查callback.inc.php的分支順序必須是 openid 優(yōu)先。已經(jīng)產(chǎn)生的重復(fù)賬號(hào)要按 openid 分組人工合并別寫(xiě)腳本自動(dòng)刪?,F(xiàn)象四PC 端正常手機(jī)端點(diǎn)了完全沒(méi)反應(yīng)。原因多半是模板里按鈕綁的是click事件而移動(dòng)端瀏覽器在某些情況下會(huì)吞掉這個(gè)事件另一種是本站已全站 HTTPS但插件模板里硬編碼了http://的跳轉(zhuǎn)地址被瀏覽器按混合內(nèi)容攔掉。解決事件改成touchstart和click都綁檢查模板里所有 URL 是否走$_G[siteurl]。用手機(jī)瀏覽器遠(yuǎn)程調(diào)試看一眼 Console有沒(méi)有 blocked 提示一目了然。現(xiàn)象五換了域名或上了 HTTPS 之后所有老用戶全部掉登錄。原因是 cookie 域、后臺(tái)站點(diǎn) URL、開(kāi)放平臺(tái)回調(diào)三處沒(méi)同步導(dǎo)致 state 校驗(yàn)失敗或者 token 換不出來(lái)。解決換域名時(shí)把這三處列成清單逐項(xiàng)改改完讓用戶重新授權(quán)一次。這一步?jīng)]有后悔藥唯一的辦法是換域名前就做好清單。6. 移動(dòng)端與模板兼容的進(jìn)階調(diào)優(yōu)一次回歸驗(yàn)證清單改完模板和綁定邏輯之后別急著放開(kāi)給用戶用。我一般跑一遍固定清單把六種組合都點(diǎn)一遍任一項(xiàng)不對(duì)就不上線場(chǎng)景預(yù)期結(jié)果重點(diǎn)檢查PC 未登錄點(diǎn)按鈕跳授權(quán)頁(yè)回來(lái)進(jìn)綁定頁(yè)state cookie 是否寫(xiě)入成功PC 已綁定用戶點(diǎn)按鈕靜默登錄不彈授權(quán)頁(yè)conuintoken是否被復(fù)用手機(jī)瀏覽器點(diǎn)按鈕跳轉(zhuǎn)或喚起授權(quán)回來(lái)正常按鈕事件綁定、siteurl協(xié)議微信內(nèi)置瀏覽器打開(kāi)至少給出明確提示不白屏UA 判斷分支是否存在已綁定用戶解綁再綁能正常解綁重綁不報(bào)沖突軟刪除字段是否生效后臺(tái)關(guān)閉自動(dòng)注冊(cè)新用戶看到提示而非報(bào)錯(cuò)allownewuser分支模板這塊改動(dòng)最小、收益最大的一個(gè)點(diǎn)是按鈕的降級(jí)。移動(dòng)端很多時(shí)候喚起授權(quán)會(huì)失敗如果沒(méi)有兜底用戶看到的就是一個(gè)死按鈕!-- template/qqlogin/button.htm移動(dòng)端同時(shí)綁 touchstart 和 click防止事件被吞 -- a href{$qqlogin_url} classqqlogin-btn idqqloginBtn relnofollow span classqqlogin-icon/spanQQ 登錄 /a script typetext/javascript var btn document.getElementById(qqloginBtn); var jumping false; function go(e) { if (jumping) { return; } jumping true; if (e e.preventDefault) { e.preventDefault(); } window.location.href btn.getAttribute(href); } btn.addEventListener(touchstart, go, {passive: false}); btn.addEventListener(click, go, false); /scriptjumping這個(gè)標(biāo)志位防的是移動(dòng)端同時(shí)觸發(fā)touchstart和click導(dǎo)致連跳兩次第二次帶上來(lái)的 state 已經(jīng)失效用戶看到的就是一次莫名其妙的白屏。{passive: false}是為了在touchstart里能調(diào)preventDefault不加的話部分瀏覽器會(huì)忽略這個(gè)調(diào)用。還有一個(gè)容易被忽略的細(xì)節(jié)relnofollow。登錄入口被搜索引擎爬到會(huì)產(chǎn)生大量無(wú)效的授權(quán)頁(yè)索引加上這個(gè)屬性省事。最后說(shuō)個(gè)習(xí)慣。這套插件我從第一版跟到現(xiàn)在每次升級(jí)前都會(huì)做同一件事把當(dāng)前source/plugin/qqlogin/整個(gè)目錄打包留一份命名為qqlogin_日期_版本.rar放到獨(dú)立目錄然后才動(dòng)手覆蓋。因?yàn)椴寮?jí)失敗時(shí)后臺(tái)應(yīng)用列表會(huì)直接白屏進(jìn)不去后臺(tái)就沒(méi)法回滾只能靠文件覆蓋回去。這個(gè)習(xí)慣讓我至少兩次在十分鐘內(nèi)恢復(fù)了一個(gè)正在做活動(dòng)的論壇。從那以后我每次動(dòng)插件目錄都強(qiáng)制走一遍“打包—記錄改動(dòng)點(diǎn)—再覆蓋”的流程希望幫到你。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
青青草亚洲一区| 久久av一级av少妇av高潮 | 日韩一级片在线看| 欧美成人A天堂片在线观看| 高清成年美女黄网站免费大全| 人妻在线大香蕉| 性爱av在线免费观看| yiqicaoav| 老女人碰碰在线碰碰视频| 簧片免费看视频| 亚洲综合首页| 另类在线| 国产精品无码久久久久2028| 亚洲欧美setu| 熟妇人妻精品一区二区| 亚洲色图图片| AV99热18这里只有精品| 国产天天看| 天天插夜夜操| 中国少妇啪啪视频| 九一国产精品| 亚洲男人天堂2016| 91视频观看网站| 自拍大香蕉乱插| 亚洲精品自拍| 91精品女厕偷拍视频| 东北女人操逼| 97色综合中文网| 91动漫操逼视频| 涩综合导航| 日本成人在线不卡一区二区三区| 97中文字幕一区| 91色女| 一区二区三区视频在线观看免费| 人妻 中文 日韩| 日日操免费视频| 蜜桃午夜视频一区二区| 黑人性暴力毛片| 美女毛片999| 91精品久久综合熟女| 人干人人人操人人摸| 人人么人人操| 在线观看不卡一区二区三区| 男人天堂新在线| 美女t无毒不卡不卡| 中字一区| 超碰免费人妻在线| 麻豆美女丝袜人妻中文| 成人日本片久久久蜜桃| 强奸乱亚洲| 久久久久久大| 顶级丝袜熟女一区二区三区 | 试看60秒 爽| 91AV国产精品| 蜜臀一二三区| 蜜臀AV一区二区三区| 超碰69| 天天日天天屌天天操| 美女91在线观看| 欧美国产有色电影| 国产乱子伦一区二区三区免看| 亚洲美欧999| 成人黄页| 妇人噜噜| 亚洲一区二区精品福利| 东方亚洲在线操逼天堂| 69综合网| 九九九国产| 欧美性爱系列| 亚洲色交| 乱欲一区二区| 大屁股熟女一区二区三区| 北条麻妃性愛视频| 9999九九九久久久| 欧美专区17页| 操逼视频色| 草草影院最新网址| 亚洲精品97在线| 97精品第3页| 色哟哟AV| 日日操丁香五月天| 熟女精品一区二区三区| 97亚洲性爱| 国产亚洲日本| 97色网| 亚瑟国产精品久久无码| 日本狠狠干| 青青草在线视频人人想人人上 | 另类图片亚洲加勒比另类图片亚洲加勒比另类图片亚洲加勒比 | 国产h小视频在线观看免费| 精品高清牛人盗摄一区二区三区中文字幕A片免费在线观看 | 在线观看不卡一区二区三区| 乱欲一区二区| 色月天AV导航| 97色操| 人人妻人人爽 97人人看碰人免费公开视频 | 欧美色图91| 亚洲日韩人妻中文字幕一区| 亚洲综合中文字幕有码| 大香蕉92| 亚洲欧美自拍偷拍| 97亚洲精品| 在线播放一级无码视频| 97色伦欧美| 国产中文字幕在线观看| 婷婷视频在线免费观看| 久久综合乱子伦国产免费| 高清成年美女黄网站免费大全| 久久久国产成人一区二区三区在线| 亚欧洲日韩国产精品| 人人摸人人干人人拍97| 在线国产探花| 97色色,97综合| 测评在线观看AV| 亚洲第一在线视频| 好看的久久不射无码影视影院| 老司机午夜福利视频一区二区| 精品国产乱码久久久久久蜜臀| 人人操肉肉| 超碰激情808| 久久久精选| 亚洲密乳AV| 亚 欧 美 综合| 人妻少妇无码| 亚洲成人碰碰| 日韩日韩日韩-国产乱码精品一区二区| 国产三级在线现体验区| 日本女厕偷拍| 日韩少妇无码| 欧美亚男人的天堂| 日韩免费av片高清无码| 超碰激情808| 亚洲成人黄色在线观看| 超碰无码五月97| 久久久免费的精品| 97久久超碰亚洲| 亚洲天堂男人在线| 啊啊啊好多水| 超碰97网址| 国产精品一区二区三区在线| www九九热| 欧美色997| 野狼福利社区| 欧美性天天影视| 91n处女在线观看| 免费a在线播放v| 精品v日韩欧美国产| 日本青青草在线| 天天射天天色成人| 天天操熟妇| 免费福利视频中文字幕| 9超碰免费| 久草视频观看视频在线| 99最新日韩偷拍视频| 淫妻综合网| 无码高清少妇久久| 精品人妻一区二区三区免费视频| 97自拍一区| 国产呦精品一区二区三区下载| 夜夜欢天天干| 青青草玖玖爱| 国产成人免费观看在线视频| 欧美肥臀在线| 在线播放免费av福利片| 日韩欧美蜜桃精品久久中文字幕久久 | 在线视频97| 亚洲欧美不卡线| 2017大香蕉国产精品久久| 色欧美亚洲| 中文字幕综合人妻| 中文字幕aⅴ在线视频| 操婷婷逼| 日本不卡五区| 无码久| 天天狂操夜夜狂日| 日本高清熟女久久一区| 曰韩精品九九无码| 强奸乱伦αv片| 亚洲精品尤物yw在线影院| 久久亚洲一区女同性恋中文字幕| 色69大色97香蕉| 日韩激情视频| 91丝袜美女| 国产尹人在线视频免费| av无码av无码专区| 国产又黄又粗的视频| 中文字幕熟女人妻丝袜| 综合少妇网| 精吧天堂| 91国产丝袜美女| 夜夜操老骚逼视频网站| 日韩欧美成人大香蕉| 国产成人www免费人成看片| 精品无码欧美三级| 我要去看2个日本美女.com曹逼| 一二三区精品视频| 在线洲亚线| 人妻熟女一区二区| 日韩亚洲97| 激情婷婷丁香| 舔舔啊| 日韩欧美偷拍美女视频| 久久久99999久网站| 欧美性区| A啊啊在线观看| 午夜精品久久久久| 91超碰碰在线| 色综合99999| 久久精品视| 欧美色色人| 日韩在线观看中文字幕视频| jazzjazz国产精品麻豆| 超碰激情808| 日韩九区| 老熟女搡BBBB搡BBBB视频| 欧美人妻熟女在线| 香蕉99秘 一区精品蜜桃臀| 2019男人的天堂| 亚洲在钱| 综合97| 天美传媒精品一区二区| 国产1024在线播放| 探花一区二区三| 色网在线视频观看免费| 亚洲天堂电影精品一区| 欧美三级免费伊人| 91美女色视频亚洲| 久久大香蕉97| 亚洲欧美999| 亚洲国产一区二区入口| 亚洲图片视频小说| 超碰人妻久久| 欧美有码激情视频一区二区三区| 综合一区中亚洲国产成人综合精品| 超碰色综合| 色y情视频免费看| 69少妇一区二区| 性在久久久久久| 亚洲综合精品国产一区| 麻豆视频test| 色爽——AV| 精品人妻一区二区三区不卡断| 精品999一区二区| 日本1区2区不卡视频| 色综合av男人天堂| 亚洲一区中文字幕久久,果冻传媒一区二区天美传媒 | 天天天肏屄肏屄肏屄欧美欧美| 看日韩黄片| 亚洲第一精品在线视频 | 熟妇高潮精品一区二区三区下载| 在线人成亚洲视频免费观看| 性开放中文AV高清无码免费看| 91久久久久久久久18| 在线啊啊啊啊| 在线二区不卡| 久久精品亚洲成a人天堂| 91美女中出| 精品久久九| 日本精品五区| 亚洲午夜AV| 在线黄色污污网站| 十八禁啪啪视频| 亚洲精品人妻吞精av| 97国伦国色| 欧美亚洲特P| 综合在线导航一区| 久湿久久| 国产精品亚洲无码| 中文字幕日产av人| 啊啊啊啊啊啊在线观看| 桃色五月天| 久久噜| 久久精品国产Aⅴ| 日韩av影片在线观看| 草久久久| 天天激情综合站| 日本韩国一本产品小视频日本韩国一本产品久久久产品小视频日本韩国一本产品久 | 亚洲婷婷综合网| 91社操逼| 国产精品制服丝袜中文字幕日韩一区二区三区| 天天舔日美女视频| 久久草在线综合视频| 青青欧洲黑| 久久精品 六十路 熟女 欧美| 嗯啊不要在线观看嗯啊| 老鸭窝在线视频播放| 日本不卡高清视频| 好屌色综合| 日本人妻中文字幕精品| 欧洲乱码视频| 超碰无码加勒比| 一区二区三区蜜桃成人撸久久东京热 | 中文字幕久热视频在线| 大香蕉综合在线| 人人贴人人摸| 亚洲天堂资源| 999国产精品999| 超碰欧美97资源| 国模精品一区二区三区苹果色戒 | 韩国一级做A片免费的| 97爱啪| 亚州AV无码国产精品| 国产日韩区| 欧美日韩亚洲天堂网| 涩涩涩综合| 狠狠亚洲| 九九热AV| 日韩熟女乱伦中出| 国产av美女被艹的乱叫| 日韩操p| 超碰人妻中文在线| 狠狠干,狠狠操| 台湾佬大香蕉| 丝袜制服字幕在线| 亚洲成人福利电影免费| 玖色av| 97操在线| 日本裸体久久色噜噜| 日韩欧美亚欧在线视频| 香蕉免费一区二区三区不读| 五月丁香成人网| 亚洲精品国产熟女久久久| 殴美牲| 伊人亚洲国产一成人久久精品,久久| 国产精品动态一区二区三区四四| 97九色人妻| 久久精品国产亚洲5555| 人人噜夜夜操| 99这里有精品视频| 狠狠色狠狠色狠狠五月| 密臀在线一区尤物| 日韩精品人妻中文字有码在线| 丝袜熟女一区二区三区| 日韩国产精品人妻无码久久久| 九九九九日本| 99综合免费视频| 久久草草亚洲蜜桃臀| 色爽——AV| 乱精品一区字幕二区| 操逼天美3区| 抽插一区二区视频| 九九人妻| 裸体1区| 99精品网| 在线免费观看日韩一区| 欧美色院| 久久久一二三四区| 亚洲欧美国产中文字幕| 久久婷婷五月天| 亚洲天堂7777| 欧美福利视频啊啊啊啊| 久久国产精品m码| 欧美 熟女 日韩| 日韩美一区| 国产成人自拍视频在线| 377p欧洲日本亚洲大胆| 夜夜草我| 淫荡网址| 久久无码精品| 操一对老熟妇爽上天视频| 超碰人妻中文在线| 老司机久久| 免费看美国人人爽,人人操| 久久精品色欧美aⅴ一区二区| .精品人妻一区二区三| 97视频免费播放| 午夜九九| 另类小说欧美激情校园春色| 啊啊啊在线看| 亚洲精品国产av天美传媒| 色妹子A V| 五月天婷婷综合| 日韩AV熟女乱伦| 婷婷午夜成人色中色| 色屁屁影院www国产| 亚洲色欧美| 日韩本不卡视频在线观看| 加勒比东京热五月天天堂网| 日本久久综合| 欲香欲色天天天综合和网| 乱理日韩中文| 丝袜翘臀后入欧美校园亚洲自拍另类小说一区中文字幕少妇诱惑 | 久久啊哟| 国产又大又粗又长视频在线| 78久久久| 日本淫穴在线| 精品人妻一区二区蜜桃视频 | 变态乱伦伪娘灌肠一区二区| 成人麻豆av电影网站| 天天操夜夜嗨| 首页中文字幕中文字幕免费| 中文字幕日本久久| 人夜夜精品网站香蕉嫩草| 91粉芽高清在线一区二区| 99热这里是精品| 丁香六月激情| 午夜天堂精品久久| 91日日夜夜| 国产福利av精彩对白| 7777欧美成是人在线观看| 婷婷五月色| 精品视频久久久久九九九九9999| 午夜激情床戏激情| 亚州欧美一区| 欧美丝袜中文字幕07在线| 久久欧美激情| 色婷婷六月丁香七月婷婷| 超碰人妻天天干| 久久99人妖视频国产| 婷婷激情四射| 欧日韩在线观看| 日日爽熟女| 91久久| 8x福利精品第一福利视频导航| 免费啪啪一级视频| 蜜臀久久99精品久久久老,,| 91久久堂| 欧美 亚洲 在线| 男人天堂黄片| 欧洲天天在线| 男人的天堂日韩| 2017天天插| 久草国产在线视频| 天天干2区3区| 日韩本不卡视频在线观看 | 超碰色中文| 亚洲AV不卡在线观看| 97久久超碰| 午夜福利精品| 欧美性,亚州色| 亚州黄站| 九月丁香综合网| 久久最新免费视频23| 欧美91久久久久| 亚洲 暴爽 AV人人爽日日碰| 欧美精品,四区。五区| 大学生美女口爆| 日韩免费看黄片| 亚洲第一页欧美| 哈哈操电影| 大香蕉免费乱伦视频| 嗯嗯嗯,草死我| 伊人性在线视频| jk白丝没脱就开始啪啪| 婷婷综合在线观看| 午夜爽爽爽| 97综合在线| 大香蕉伊然在亚洲91| 老熟女乱伦一区| 懂色AV一区二区三区| 久久久久久免费电影| 强奸乱伦AV网站| 嗯嗯嗯啊啊啊操的我好爽 | 日韩激情啪啪| 丰满人妻一区二区中文| 大香蕉黄色一级片免费看| 国产久久一区二区午夜| 激情综合 婷婷五月 红杏| 伊人网综合在线视频| 91色黑人少妇| 夜夜草我| 亚洲色9| 欧美日韩国产成人高清| 夜夜爽妓女| 欧美色偷偷| 综合色图亚洲欧美| 青春草莓视频在线观看网址| 亚洲AV免费在线观看| 久久久久久性爱免费视频| AV九九| 久热伊人| 999久久久久久久精| 亚洲色人| 99天天超碰| 久久久一区二区三区三州| 亚洲永久AV无码精品秋霞| 亚洲日韩人妻中文字幕一区| 精品十三区| 国产精品女生av| 2019午夜福利视频| 9l视频自拍9l九色成人| 国产伦精品| 欧美日日夜夜| 色官网色综合| 91天堂| 亚洲 欧美 中文 日韩超碰| 偷拍精品一区二区三区| 97露脸精品丝袜| 亚洲系列第一页| 91成人无码| 清纯唯美激情四射| 欧美十八禁视频| 亚洲男人天堂网站| 色欲久久99国产精品久久久久久| 色视频蜜乳| 男人把坤坤插入女人的下体| 久久99人妖视频国产| 少妇人妻好深太紧了vr91| 人妻夜夜爽天天爽三区麻豆AV网站| 大奶啊啊好爽 | 午夜在线播放| 欧美日日夜夜| 一级久久性爱视频| 青青草中文字幕| 在线小说视频一区| 欧美性爱五月天| 国产又黄又粗又猛大片| se,,,亚洲欧美| 五月婷丁香| 尹人免费观看视频在线| 亚洲激情深爱文学小说网站| 最新国产精品久久精品| 色婷婷综合久久中文字幕雪峰| 青青色在线观看| 桃花色综合影院| 破处bbq| www四虎| www.人人cao| 人妻天天爽天天爽三区| 玖玖爱伊人玖玖爱| 熟女欧美日韩综合婷婷| 91操碰| 多毛小伙内射老太婆| 亚洲久9| 欧美综合777| 欧美亚综合色图| 国产又色又爽又舒服的三级视频| 国产91福利小视频在线观看| 国产91美女视频| 九七毛片九九毛片 | 校园春色宗合网| 大香蕉在线视频15| 天天综合色| 一区二区三区四区免费视频| 八戒午夜福利理论片| 日本不卡在线二区三区| 熟妇一区,二区,三区。| 久操大香蕉超碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰 | 欧美日韩大香蕉| 丰满人妻一区二区三区蜜桃视频| 欧美精品23| 一区操逼日比视频| 69精品少妇一区二区三区蜜桃| 日韩三A大片在线观看| 91一区二匹| 欧美亚州综合网图片| 久久夜精品一区二区三区| 亚洲熟妇丝袜在线观看| www.狠狠干.coom | 久99热| 国产av美女被艹的乱叫| 丰满高潮18xxxx| 能在线播放的国产三级| 日韩无码a片| 国产AV色黄看到爽| 福利社区午夜一区二区| 看大黄色大片原件| 亚洲中文日韩欧美大香蕉视频| 天天草夜夜草高潮片| 国产日韩欧美操逼视频| 大香蕉www.超碰| 亚洲小电影免费涩涩成人在线高清| 国产午夜福利专区综合| 18禁无码永久免费无限制| 精品久久久久久AV无码| 亚洲国产欧美一区二区潘金莲| 手机在线免费看的av| 国产综合在线视频网站| 一起草日韩| 国产亚洲精品美女久久久m| 久久无码电影| 色色丁香| 国产老熟女| 四虎免费看黄| 欧美黑人91| 精品玖九九久| 你懂的在线观看区国产| 一本一道波多野毛片中文在线| 欧亚乱色熟女一区二区| 91九色网| 殴美综合色88| 青青草久久| 国产激情在线| 中文字幕免费观看| 天天搞欧美| 91天美| 17c在线成人免费A片观看| 艹少妇网站| 99无码视频| 亚洲情色一区三区| 2017天天操天天日| 国产精品成久久久久午夜午夜| 日韩无码三级影院| 五月激情天| 极品内射| 天堂性色| 嗯啊抽插大香蕉网页| 免费一级视频特黄色大片| 97综合在线观看| 色香综合天天影视综合 | 和协无码影院| 92一区二区| 玖玖爱综合| 亚洲精品影视老司机| 色情乱伦AV| 国产a级精品| 亚洲AV在线资源| 亚洲欧美不卡线| 亚洲欧洲精品视频发布| 十八禁网站在线| 97欧美色综合| 久久透逼视频| 97超碰碰碰| 大香蕉伊然在亚洲91| 操一操摸一摸| 午夜婷婷| 亚洲性综合11| 激情国产乱伦Av| 九久久九精品视频| 青娱乐91| 九九热AV| 家庭乱伦网站国产| 97国产天堂岛| 亚洲AV成人精品网站在AV| 婷婷五月综合在线| 国产自啪精品视频网站黑丝| 日韩激情毛片一级久久久| 99这里只有精品| 欧美激情黑人| 欧美强奸乱能| 国产美女激情| 国产精品ⅴ无码大片在线看.| 精品视频久久久久九九九九9999| 后入合集| 精品性爱无码在线播放| 941超碰| 精品国产丝袜一区二区三区乱码| 青娱乐大香蕉| 亚洲无码成人精品| 中文字幕乱码人妻一区二区三区,99精品 | 高精欧美色| 俺去俺来也在线www| 人妻黑丝袜电影| 色翁荡息又大又硬又粗又爽| 青久操| 一个国产在线综合网站| 久久最新视频免费观看| 岛国片在线播放| 99国产精品久久久久久久成人热| a亚洲欧美色欲| 裸模AV女优| 17c在线成人免费A片观看| 69视频福利导航| 日本色色视频网站| 免费亚洲国产精品久久一区| 91成人久久 | 欧州一区二区三区四区| 又大又大又大又粗爽高潮观看 | 小说区 图片区色 综合区| 成人免费性爱视视| 麻花豆传媒剧国产MV出差| 97色婷| 狠狠干2020| 日韩电影免费网站麻豆视频| 天天色踪合| 丝袜美腿制服人妻二区中文字幕 | 嗯~啊~快点 死我视频免费看网站| 欧亚成人| 久久成人东京热人妻| 国产亚洲综合欧美一区| 国产精品电影大全| www.yeyecao| 久久伊人亚洲AV无码网站| 色就色综合| 日本护士高潮| 久久加勒比| 九九英色视频| 久操视频资源站公开| 九九五月天| 亚洲日韩av一区二区三区百合| 黄色av网站在线播放| 啊啊啊啊啊啊啊啊啊在线观看| 中文字幕av乱伦| 97精品视频| 久久久九九九九| 99ri视频| 高清国产无码av| 国产精品69久久久久久久 | 蜜桃色院一区久久 | 综合激情一一91| 五月丁香久久| 亚州成人a∨| 色婷婷狠狠| 亚洲春色欧美| 亚洲性爱高潮影院| 精品无码久久久久久久久果冻糖心| 殴洲老熟女| 97日韩欧美亚洲| 天综合网| 日韩丝袜二区| 中文字幕人妻资源在线| 91视频女生| 秋霞Av理论一级在线| 亚洲色情在线影视| 成人AV素股で擦久久| 人人看人人摸人人色| 亚洲国产精品V?在线播放| 一区二区播放| 欧美激情色婷婷花野真衣一区二区| 国产67194| 国产成人网址| 天天爽夜夜爽夜夜爽精| 欧美超碰人妻97| 天天干,夜夜爽| 亚洲成A∨人影院在线欢看| 久热久| 亚洲国产精品无码AV在线| 中文乱码99| 五月婷婷丁香| 久久香蕉国产线看观看猫咪av| 亚欧毛片基地国产毛片基地| 色97干| 日日躁天天躁狠狠躁| 人妻少妇精品久久久| 九九久久久九九| 麻豆60秒| 一区二区三区在线资源| 97自拍视频在线| 免费一级毛片在线视频观看| 免费的很黄很污的全部视频| 色欲三区| 97精品免费视频网站| av在线不卡一区二区三区| 999岛国大片| 亚洲AV在线资源| 日本A级视频| 天天影视网综合少妇| 青草青草久热| 91丝袜美腿网站| 夜夜免费视频| 亚洲九九夜夜| 亚洲色欧美| 美女性91| 青青草一区二区高清无码视频| 97射欧美| 91 偷| 欧美日综合| 久久HD| 久久九九99| 久久极品一区二区| 久jiu久神马影院| 91黑丝少妇| 天天天肏屄欧美| 夜夜嗷嗷一区二区| 亚洲综合贴图91| 欧美综合网站999| 中文区中文字幕免费看| 国产精品视屏| 26uuu成人影片| 91碰超| 亚洲aV性爱| 人妻熟女午夜精品在线| 日韩性色b| 鸥美插入视频| 亚洲人综合| 欧美激情精品| 性久久久| 欧美顶级黄片AAAAA在线免费看| 婷婷99狠狠| 久热久一区二区三区| 大奶尤物鲍汁淫荡欧美视频粉嫩夜夜骚| 国产精品suv一区| 曰本特级特黄特色黄色A级网站高清在线免费看 | 婷婷久久久| 日韩AV中文字幕电影| 成人在线午夜视频一区| 91欧| 无码操逼视频一下| 91干熟女| 蜜臀AV一区二区三区激情综合| 久草草一二三四区久久| 欧美日韩人妻精品系列一区二区三区| 欧美一级A一级a爱片久久| 国产黄片精品在线| 亚洲精品 大香蕉| 一直超碰| 日本一区不卡| 91小视频| 久久久久久性爱视频| 99re6在线视频精品免费完整版安卓版| 96麻豆精品一区二区三区| 免费国产电影一区二区| 9色在线| 老女人老91妇女老热女| 好吊色综合| 操我无码| 高潮综合网| 少妇综合网| AV电影在线播放| 久久夜精品一区二区三区| 一区二区三区在线资源| 狠操91,com| 伊人网青青| 日韩高潮一区| 女人18精品一区二区三区| 日韩黄片影院| 丰满人妻一区二区三区四| 性色高清..……| 国产午夜福利电影免费在线观看| AV中文在线| 加勒比伊人影院| 牛牛AV人人夜夜澡人人爽| 婷婷色播婷婷| 九九人妻| AV不卡在线| 色 亚洲 91| 精品亚洲一区在线观看| 天美国产三级传媒| 午夜精品久久久久久久第一页按摩| 大香网站| 亚欧美综合网。| 亚洲成人在线高清| 日日夜夜骚| 国产 日韩,欧美 自拍| 口爆综合网| 综合五月天| 91色婷婷综合久久中文字幕二区| 中文字幕av丝袜| 日日日日做夜夜夜夜无码| 九九成人精品| 自拍偷拍草一草| 东北女人的毛片| 1级黄色夫妻对换性交免费看| 91 丝袜在线| 玖玖爱在线视频免费观看| 啊啊啊啊啊啊啊国| 91视频精品| 色老汉色| 日韩精品在线观看观看| 男人的天堂日本东京热| 超碰成人公开| 久久久成人免费av电影| 国产女性无套 免费观看| 天操天操夜操夜月月年年操操 | 亚洲情色一区二区三区| 操逼操逼视频操逼| 久草成人影片| 99久热| 啊啊啊好想要| 美女的肌被草喷水视频| 亚洲乱色熟女一区| 日韩精品人妻中文字有码在线| 亚洲精品天堂久久A∨51成人漫| 国产一区二区在线播放,久久亚洲精品中文字幕第一区,亚洲精品在线中文字幕视频 | 中文字幕三四五区| 日韩专区数据列表-第3230页-精品国产一区二区三区香蕉 久久99熟女人妻中文字 | 黄色网址在线免费观看| 中日韩久久久免费看| 69人妻精品一区二区绯色| 色综合一区二区三区| 欧美一区二区三区大综合| 日本性爰一道本| 四虎884| 日本熟妇浓毛hdsex| 人妻精品一区一区三区蜜桃91| 蜜桃久久一区二区| 天天综合香 ld视频| 黄色区免费观看中文字幕| 国产超碰97| 情色日播放AV| 国内亚洲精彩视频在线| 久热精品在线| 麻豆婷婷成人一二三| 欧美性爱视频免费一区一A| 一区二区影视| 国产精品久久久久久久免牛肉蒲团| 国产精品视频白浆免费| 日本一区不卡| 91欧美丝袜| 高清不卡国产| 手机看片1025| 边做饭边操逼逼| 日韩AV噜噜噜一区二区三区四区| 夫妻四区五区六区| 在线性黄高清免费视频| 国产精品黑人一区二区三区| 欧亚韩国999| 色婷婷综合久久中文字幕雪峰 | 男人的天堂在线| 啊啊啊啊嗯嗯嗯用力好爽 | 蜜桃久久综合视频| 黄片免费看的| 日韩亚洲欧美中文字幕| 麻豆区久久久久亚| 亚洲欧美日韩有码| 色色色综合| 国人欧美精品一区二区| yaouchengrenav| 91色夜| 超碰午夜| 天天看特黄的免费网站| 理论久久婷婷网 8| 精品亚洲国产成人AV制服丝袜| 伊人一区二区在线播放| 9999久久久| 亚洲成人在线乱码色午夜| 伊人久久蜜月| 玖玖综合色| 日韩在线视频1234| 亚洲激情综合| 国产日韩欧美三级片| www.91理论| 超碰无码加勒比| 夜草网站| 亚洲毛片基地专区| 中文字幕激情小说| 一级久久性爱视频| 欧美的性爱网站免费| 日本影视久久免费| 91超碰在线| 精品人妻一区二区三区在线视频不卡| 久久久久久久综合,国产| 60秒免费小视频| 91高跟美女在线播放| 9 7超碰在线免费观看| 偷拍欧美激情| 国产怡红院| 亚洲精品蜜桃久久久一区二区三区| 丁香六月婷婷| 九九99久久| 91九色在线| 99热9| 国产丝袜视频| 91人人看| 色诱avtt| 亚洲成人妻日韩在线| 91AV天堂| 蜜桃臀一区二区三区久久| 激情啪啪视频| 麻豆区久久久久亚| 大香交| 欧美日韩欧美| 亚洲超碰97| 狠狠久久手机视频精品| 中国AV美女| 一区二区三区黄片免费观看| 熟女精品va中文字幕| 嫖老熟女A片一二三区| 欧美视频在线视频免费va| 丁香婷婷久久| 啊好大好舒服| 91丝袜激情在线| 色亚州人久干视频在线观看免费版| 亚洲欧洲激情| 黑人在线91| 成年无码动漫av片无尽在线| 强奸抽插av| 午夜福利精品| 99精品在线观看| 成 人 影视 一区 二区 三区 四区| 香蕉一区二区三区在线视频 | 中文字幕一区二区韩| 精品国产肉丝袜在线拍国语| 日韩精品国产精品五码一区二区| 99精品丰满人妻无| 久久精品女同亚洲女同13| 亚洲av无码成人精品国产| 91久热| 人妻一区二区三区| 大香蕉中文aV在线| 亚洲欧洲色情高清| 久久九九精品一区二区| 亚洲欧美色图片| 黄色免费网| 和协影院中文字幕三区| 欧美一二级| 91爱网| 乱伦a片视频| 中文字幕一区日韩精| 精品久久久久9999| 人澡逼| 天天干2区3区| 国产丝袜高跟美女av免费观看| 日本二三四区| 欧美精品成人在线播放| 另类天堂| 精品免费国产二区三区| 欧美丝袜亚洲| 欧美国产精品| 你操综合| 久久久久久无码人妻中文字幕| 激情婷婷综合久久| 欧美一区二区亚洲天堂| 你草精品在线视频| 97视频免费播放| 一级特级aaaa毛片免费观看 | 韩国三级三级BD在线| 国产一二三福利视频网| 高清国产性猛交xxxx乱大交| 色九九九九久| 五月天人妻综合| 高潮毛片无遮挡高清免费| 久久天堂婷婷网| 超碰视97中文| 久久精品国产99精品亚洲蜜...| 五月婷丁香| 9 1超碰九色| 免费精品中文字幕| 中文字幕少妇色| 久热一区二区| 天天色播| 国产少妇内射| 国产操操日韩三级黄| 欧美图片色综合| 国产乱子伦久久精品综合一区二区三| 国产女人91精品嗷嗷嗷嗷| 麻豆伊人网| 青娱乐老司机视频| 精品夜夜澡人妻无码| 欧美综合色图片| 中文字幕av亚洲在线| AV99热18这里只有精品| 五月天婷婷在线看| 国产日本熟女顶级一区二区三区视频| 久九九九九九九九热| 国产又粗又长又爽又色| 呦女网站| 成人网站 免费观看| 国产视频小说| 青娱乐亚洲自拍| 天堂伊人久久| 福利社区午夜一区二区| 成人久久精品| 久久久久久亚洲中文| 国精综合一二三区影视| 日韩在线欧美精品一区二区| 国内黄色精品| 视频一区二区三区精品| 大香蕉中文aV在线| 国产三级资源在线观看| 中文字幕久久精视频久久大全| 欧美一二三级精品在线| 少妇500双飞99| 精品毛片av一区二区| 精品久久九| aⅴ日韩成人电影av在线免费看av大全 | 大香蕉92| 91精品国产麻豆国产自产在| 午夜亚洲| 日韩欧美女优电影| 超碰午夜| 99啪啪| 333kkkk·亚洲com久久| 国产又大又粗又长视频| 婷婷综合五月| 一起草高清无码| 中文字幕人妻色偷偷久久皮| 九色精品视频导航1| 国产www色在线观看| 激情婷婷丁香网| 中文字幕一区av| 国产成久久综合片| 国产青青美女玩逼视频| 人人天天干干| 美女黄网| 伊人操操| 人人扣人人操| 一二三区操逼国产91| 成人精品一区二区三区| 亚洲中文一区二区三区视频| 老熟女综合| 中文幕97| 91久操| 国产亚洲精品A在线观看下载| 亚拍在线| 综合网欧美在线| 翔田千里无码中出中文字幕| 久热99999| 97精品国产97久久久久久免费| 黄色人人| 91成人精品| 日逼五月天| 五月天色图| 亚洲无码成人精品| 91蜜桃传媒精品久久久一区二区| 玖玖97综合| 国产综合网站在线播放 | 天天日天天操天天射河南省| 99精品丰满人妻| 激情综合五月天| 亚洲国产尤物yw在线观看| 亚洲一区二区av| 操逼999| 女同亚洲欧美一二三区久久电影| heyZO天然素人无码AⅤ专区| 大粗鳼巴久久久久| 91天美传媒在线观看| 丝袜 亚洲 偷拍| 嫩草一区二区在线观看| 欧美色图 色综合图| 色亚州人久干视频在线观看免费版| 97天天摸天天碰| 亚洲欧美在线观看2021| 黄色视频高清无码网站| 91痴汉| ai欧美亚洲小说| 久久25| 婷婷丁香五月综合| 人人摸人人摸人人干| 欧亚无码视频| 日韩猛交| 中文字幕第7页| 成人精品欧洲亚洲| 97视频在| 午夜福利久久久噜久噜久久综合 | 97视频www| 亚洲国产一级中文综合久久天堂在线免费观看 | 欧美亚洲激情小说| 日本一级黄色电影| 久热香蕉精品在线视频| 100啪啪视频大全| 92一区二区| 欧美日韩色| 蜜桃香蕉久草精品在线| 小骚逼被操的爽不爽| 欧美香蕉视xxx| 十八禁网站在线| 天天日日夜夜| 99精品在线| 第一高清av中文字幕| 色情乱伦AV| 操逼操逼逼操操逼91| 国内偷自视频区视频综合| 国产成人亚洲精品无| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区 | 一区二区三区美女超清| 神马九九| 操香逼| 91网亚洲| 操B久久| 久久999久| 久久久性爱视频| 午夜精品久久久久久久99热影院| 人人操肉肉| 天天插天天插| www.99色| 亚洲精品色| 日韩在线76| 亚洲色人妻综合| 九九九九九九亚洲| 亚洲网自拍| 北京美女一区二区| SUV一区二区在线看| Julia Annxxxxx| 丰满少妇精品一区二区| 高清无码91| 精品九九| 精品国产一区二区三区四区在线看| 国产一进一出视频网站| 久久鲁干|