色五月色开心色婷婷色丁香,五月婷婷丁香花综合网,婷婷丁香五月激情综合在线,五月婷婷六月丁香动漫,婷婷丁香五月激情综合在线,丁香花中文字幕在线观看,播五月色五月开心五月网,开心激情综合网,狠狠色丁香婷婷综合最新地址,丁香视频在线观看,狠狠做六月爱婷婷综合av,久久激情五月丁香伊人

ARTICLE DETAIL

資訊詳情

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

公眾號(hào)無限回調(diào)登錄:用中轉(zhuǎn)服務(wù)突破網(wǎng)頁授權(quán)域名限制

公眾號(hào)無限回調(diào)登錄:用中轉(zhuǎn)服務(wù)突破網(wǎng)頁授權(quán)域名限制 簡介2024最新公眾號(hào)無限回調(diào)登錄接口源碼面向未完成ICP備案卻需接入公眾號(hào)登錄能力的開發(fā)者解決正規(guī)接口申請(qǐng)門檻高、回調(diào)受限的痛點(diǎn)。資源共7個(gè)文件、約7.77MB內(nèi)含PHP源碼、MySQL數(shù)據(jù)庫備份gz、HTML說明與界面截圖覆蓋環(huán)境部署、數(shù)據(jù)庫導(dǎo)入、后臺(tái)配置及回調(diào)鏈路設(shè)置等關(guān)鍵環(huán)節(jié)。文件結(jié)構(gòu)清晰既有可直接運(yùn)行的api.php等核心接口也有安裝介紹文本與可視化截圖便于對(duì)照配置Nginx 1.20.2、MySQL 5.6.50、PHP-7.2環(huán)境。已有243人學(xué)習(xí)下載適合具備基礎(chǔ)PHP開發(fā)能力、希望快速實(shí)現(xiàn)公眾號(hào)無限回調(diào)登錄的開發(fā)者按包內(nèi)步驟實(shí)操部署。1. 公眾號(hào)回調(diào)登錄被域名卡住時(shí)「無限回調(diào)」是更省事的答案做微信公眾號(hào)網(wǎng)頁授權(quán)登錄最卡人的往往不是 OAuth 流程本身而是后臺(tái)那個(gè)「網(wǎng)頁授權(quán)域名」只給一個(gè)位置。本地聯(lián)調(diào)要一個(gè)測(cè)試環(huán)境要一個(gè)正式環(huán)境還要一個(gè)公眾號(hào)后臺(tái)卻只肯配一個(gè)多填一次就報(bào) redirect_uri 參數(shù)錯(cuò)誤。2024 年以后我處理這類需求基本都改成了無限回調(diào)登錄接口的思路用一個(gè)中轉(zhuǎn)服務(wù)統(tǒng)一承接微信回調(diào)業(yè)務(wù)域名只需要拼一個(gè)鏈接就能拿到 code 換 openid。這篇把原理、源碼、部署、踩坑一次性講清楚適合正在被回調(diào)域名限制折磨的服務(wù)號(hào)開發(fā)者以及要做多系統(tǒng)統(tǒng)一登錄的團(tuán)隊(duì)。2. 先搞懂微信網(wǎng)頁授權(quán)為什么官方只給一個(gè)回調(diào)域名2.1 網(wǎng)頁授權(quán)的完整鏈路authorize → callback → token微信網(wǎng)頁授權(quán)走的是標(biāo)準(zhǔn)的 OAuth2 授權(quán)碼模式整條鏈路包含三個(gè)角色微信授權(quán)服務(wù)器、你的業(yè)務(wù)系統(tǒng)、用戶瀏覽器。先把這條鏈路在紙上畫明白后面所有代碼才有依據(jù)。第一步業(yè)務(wù)系統(tǒng)把用戶瀏覽器重定向到微信的授權(quán)頁https://open.weixin.qq.com/connect/oauth2/authorize ?appidAPPID redirect_uri回調(diào)地址URL 編碼后的完整路徑 response_typecode scopesnsapi_base state自定義參數(shù) #wechat_redirect第二步用戶同意授權(quán)后微信服務(wù)器帶著 code 和 state把瀏覽器 302 重定向到你填寫的 redirect_urihttps://你的回調(diào)地址/?codeCODEstateSTATE第三步你的后端拿著 code向微信的 token 接口換網(wǎng)頁授權(quán) access_token 和 openidhttps://api.weixin.qq.com/sns/oauth2/access_token ?appidAPPID secretSECRET codeCODE grant_typeauthorization_code第四步如果你申請(qǐng)的是 snsapi_userinfo 權(quán)限再用上一步拿到的 access_token 調(diào)用戶信息接口拿昵稱、頭像和 unionid。這里說的「回調(diào)」不是編程語言里那種 callback 函數(shù)而是 OAuth2 里的 redirect_uri微信生態(tài)里還有 JSAPI 支付回調(diào)和 wx-open-launch-app 的開放標(biāo)簽回調(diào)各自協(xié)議不同本文只講網(wǎng)頁授權(quán)登錄這一條鏈路。整條鏈路里微信對(duì)一個(gè)開發(fā)者最重要的約束就是第三步那個(gè)回調(diào)地址的域名必須在公眾號(hào)后臺(tái)提前登記。2.2 官方回調(diào)域名限制卡住了哪三類場(chǎng)景微信公眾號(hào)后臺(tái)的「網(wǎng)頁授權(quán)域名」只允許配置一個(gè)域名而且有幾個(gè)硬性約束不能帶 http:// 或 https:// 前綴不能帶端口號(hào)不能帶路徑域名必須已完成 ICP 備案。這意味著你只能用example.com這種裸域名example.com:8080、example.com/wx/callback都不會(huì)通過校驗(yàn)。這個(gè)單域名限制在實(shí)際開發(fā)里會(huì)卡住三類場(chǎng)景。第一類是本地開發(fā)。你本地跑著localhost:3000微信服務(wù)器根本訪問不到這個(gè)地址更不可能把它配置成網(wǎng)頁授權(quán)域名。新手最常見的翻車現(xiàn)場(chǎng)就是本地聯(lián)調(diào)時(shí)一切正常一放到微信里就報(bào) redirect_uri 參數(shù)錯(cuò)誤。第二類是多環(huán)境隔離。開發(fā)、測(cè)試、預(yù)發(fā)、生產(chǎn)四個(gè)環(huán)境四個(gè)域名一個(gè)公眾號(hào)只能配一個(gè)改來改去還影響正在聯(lián)調(diào)的其他同事。我見過一個(gè)團(tuán)隊(duì)因?yàn)楦挠蛎l繁直接把生產(chǎn)環(huán)境的登錄也帶崩了。第三類是多業(yè)務(wù)系統(tǒng)復(fù)用同一個(gè)公眾號(hào)。公司有官網(wǎng)、管理后臺(tái)、小程序 H5 三個(gè)系統(tǒng)都要用公眾號(hào)登錄每個(gè)系統(tǒng)的回調(diào)地址都不同公眾號(hào)后臺(tái)的位置卻只有一個(gè)。這才是「無限回調(diào)」這個(gè)需求真正要解決的問題。2.3 「無限」的實(shí)現(xiàn)思路中轉(zhuǎn)域名 臨時(shí)會(huì)話既然公眾號(hào)后臺(tái)只認(rèn)一個(gè)域名那就讓這個(gè)唯一域名成為一個(gè)中轉(zhuǎn)站。中轉(zhuǎn)域名的職責(zé)是統(tǒng)一接收微信的回調(diào)然后根據(jù)請(qǐng)求里攜帶的標(biāo)識(shí)把用戶重定向回真正的業(yè)務(wù)系統(tǒng)。具體拆開是這樣的中轉(zhuǎn)域名 M 配置成公眾號(hào)后臺(tái)唯一的網(wǎng)頁授權(quán)域名。業(yè)務(wù)系統(tǒng) A 把用戶引導(dǎo)到 M 的授權(quán)入口同時(shí)傳給 M 兩個(gè)參數(shù)A 自己的回調(diào)地址和 A 自己生成的 state。M 收到請(qǐng)求后把 A 的回調(diào)地址和 state 存進(jìn)一個(gè)短時(shí)效的臨時(shí)會(huì)話然后拼一個(gè)微信 authorize 鏈接其中 redirect_uri 固定指向 M 自己的回調(diào)接口state 填臨時(shí)會(huì)話 id。微信回調(diào)到 MM 根據(jù) state 里的會(huì)話 id 取出 A 的真實(shí)地址302 跳轉(zhuǎn)到A?codeCODEstate業(yè)務(wù)原state。A 拿到 code 后調(diào) M 暴露的 token 接口換取 openid整個(gè)登錄閉環(huán)完成。這套設(shè)計(jì)里微信側(cè)看到的回調(diào)域名永遠(yuǎn)只有 M 一個(gè)但 M 后端可以為任意數(shù)量的業(yè)務(wù)系統(tǒng)保存回跳地址。所謂「無限」指的是可接入的業(yè)務(wù)域名數(shù)量不再受公眾號(hào)后臺(tái)限額約束而不是繞過微信的域名校驗(yàn)。中轉(zhuǎn)域名仍然是已備案、可配置、可校驗(yàn)的合法域名微信的管控目標(biāo)「回調(diào)域名必須由開發(fā)者控制」并沒有被破壞。這個(gè)思路的另一個(gè)好處是 AppSecret 不用下發(fā)到各個(gè)業(yè)務(wù)系統(tǒng)。每個(gè)業(yè)務(wù)系統(tǒng)只需要知道中轉(zhuǎn)服務(wù)的地址敏感憑證統(tǒng)一收口在中轉(zhuǎn)服務(wù)里出問題時(shí)的排查面也小。3. 源碼拆解用 3 個(gè)接口實(shí)現(xiàn)無限回調(diào)登錄3.1 源碼目錄結(jié)構(gòu)一個(gè)入口、三個(gè)路由完整的實(shí)現(xiàn)只需要一個(gè) Node.js 服務(wù)依賴兩個(gè) npm 包整體結(jié)構(gòu)非常輕。我用 Express 寫路由axios 發(fā)請(qǐng)求實(shí)際生產(chǎn)里換成 PHP、Java 或 Go 重寫邏輯完全一樣核心就是那三個(gè)接口。wx-oauth-proxy/ ├── package.json ├── config.js └── server.jspackage.json 里只需要兩個(gè)依賴{ name: wx-oauth-proxy, version: 1.0.0, private: true, scripts: { start: node server.js }, dependencies: { express: ^4.19.0, axios: ^1.7.0 } }axios 用來向微信的 token 接口和用戶信息接口發(fā)請(qǐng)求比 Node 原生 http 模塊寫法更短錯(cuò)誤處理也更直觀。如果你所在團(tuán)隊(duì)不允許引入 axios用原生 https 模塊重寫這兩個(gè)請(qǐng)求也非常簡單。3.2 授權(quán)入口把業(yè)務(wù)回調(diào)地址存進(jìn)臨時(shí)會(huì)話config.js 是整個(gè)服務(wù)的唯一配置入口公眾號(hào)憑證、中轉(zhuǎn)域名、會(huì)話過期時(shí)間都放這里。AppSecret 統(tǒng)一由中轉(zhuǎn)服務(wù)保管絕不向下分發(fā)module.exports { // 公眾號(hào)后臺(tái)「基本配置」里拿到的 AppID 和 AppSecret appid: wxYOUR_APPID, appsecret: YOUR_APP_SECRET, // 中轉(zhuǎn)服務(wù)的對(duì)外域名 // 必須與公眾號(hào)后臺(tái)「網(wǎng)頁授權(quán)域名」配置完全一致不帶協(xié)議頭 proxyHost: https://oauth.example.com, // 用戶停留在微信授權(quán)頁的允許時(shí)長單位秒 // 用戶可能在微信里猶豫很久建議給 10 分鐘 sessionTtl: 600 };server.js 里授權(quán)入口路由是業(yè)務(wù)系統(tǒng)對(duì)接的第一個(gè)接口。它接收業(yè)務(wù)系統(tǒng)的回調(diào)地址和 state生成一個(gè)短會(huì)話 id然后把用戶送去微信授權(quán)頁const express require(express); const axios require(axios); const config require(./config); const WECHAT_AUTHORIZE_URL https://open.weixin.qq.com/connect/oauth2/authorize; const WECHAT_TOKEN_URL https://api.weixin.qq.com/sns/oauth2/access_token; const WECHAT_USERINFO_URL https://api.weixin.qq.com/sns/userinfo; // 臨時(shí)會(huì)話存儲(chǔ)sid - { redirectUri, state } // 單機(jī)部署用 Map 足夠多實(shí)例部署必須換 Redis 并設(shè)置同樣的 TTL const pendingRedirect new Map(); // 生成短隨機(jī)串作為會(huì)話 id不使用業(yè)務(wù)傳參直接做 key function genSessionId() { return Math.random().toString(36).slice(2) Date.now().toString(36); } app.get(/wx/oauth/authorize, (req, res) { const redirectUri req.query.redirect_uri; // 業(yè)務(wù)系統(tǒng)自己的回調(diào)地址 const state req.query.state || ; // 業(yè)務(wù)系統(tǒng)希望原樣帶回的參數(shù) const scope req.query.scope || snsapi_base; if (!redirectUri) { return res.status(400).send(missing redirect_uri); } const sid genSessionId(); pendingRedirect.set(sid, { redirectUri, state }); setTimeout(() pendingRedirect.delete(sid), config.sessionTtl * 1000); // 注意微信最終回調(diào)的是中轉(zhuǎn)域名不是業(yè)務(wù)域名 const authorizeUrl WECHAT_AUTHORIZE_URL ?appid config.appid redirect_uri encodeURIComponent(config.proxyHost /wx/oauth/callback) response_typecode scope scope state sid #wechat_redirect; res.redirect(authorizeUrl); });這里最關(guān)鍵的設(shè)計(jì)是業(yè)務(wù)系統(tǒng)的真實(shí)回調(diào)地址沒有直接暴露給微信而是存進(jìn)了服務(wù)端臨時(shí)會(huì)話。微信 URL 里的 state 只是一個(gè)短隨機(jī)串長度可控也不會(huì)有 URL 編碼和特殊字符問題。scope 參數(shù)需要業(yè)務(wù)系統(tǒng)傳還是由中轉(zhuǎn)統(tǒng)一決定我一般讓業(yè)務(wù)系統(tǒng)傳入默認(rèn) snsapi_base。snsapi_base 是靜默授權(quán)用戶無感知適合純登錄場(chǎng)景snsapi_userinfo 需要用戶點(diǎn)擊確認(rèn)授權(quán)能拿到昵稱頭像適合需要展示用戶資料的場(chǎng)景。如果你拿捏不準(zhǔn)默認(rèn) snsapi_base 最穩(wěn)。3.3 微信回調(diào)解開會(huì)話回跳到業(yè)務(wù)系統(tǒng)回調(diào)接口是微信服務(wù)器主動(dòng)訪問的必須能被公網(wǎng)訪問到路徑要和 authorize 里拼的保持一致app.get(/wx/oauth/callback, async (req, res) { const code req.query.code; const sid req.query.state; const pending pendingRedirect.get(sid); pendingRedirect.delete(sid); // 一次性使用用完即刪 if (!code || !pending) { return res.status(400).send(invalid callback params); } // 拼接業(yè)務(wù)系統(tǒng)的原回調(diào)地址code 和業(yè)務(wù)自己的 state 都要帶上 const sep pending.redirectUri.includes(?) ? : ?; res.redirect( pending.redirectUri sep code encodeURIComponent(code) state encodeURIComponent(pending.state) ); });拼接分隔符時(shí)我用了一個(gè)三元判斷如果業(yè)務(wù)回調(diào)地址本身帶了 query 參數(shù)就用連接否則用?。這個(gè)細(xì)節(jié)很容易被忽略業(yè)務(wù)回調(diào)地址恰好帶參時(shí)漏掉這個(gè)判斷就會(huì) code 參數(shù)丟失微信那邊表現(xiàn)為登錄失敗但日志里找不到任何報(bào)錯(cuò)。pendingRedirect.delete(sid)這行是血淚經(jīng)驗(yàn)換來的。微信的 code 是嚴(yán)格一次性的但業(yè)務(wù)回調(diào)地址對(duì)應(yīng)的會(huì)話本該也是一次性的如果不刪除用戶刷新一下頁面就會(huì)重復(fù)消費(fèi)同一個(gè) code緊接著報(bào) 40163。每次進(jìn)入回調(diào)先刪再判斷等于主動(dòng)把這個(gè)風(fēng)險(xiǎn)摁掉。3.4 換 token 與用戶信息AppSecret 只留在中轉(zhuǎn)服務(wù)業(yè)務(wù)系統(tǒng)收到 code 后下一步就是換 openid。這套設(shè)計(jì)里業(yè)務(wù)系統(tǒng)不需要知道 AppSecret它只需要向中轉(zhuǎn)服務(wù)要結(jié)果app.get(/wx/oauth/token, async (req, res) { const code req.query.code; if (!code) return res.status(400).send(missing code); const tokenResp await axios.get(WECHAT_TOKEN_URL, { params: { appid: config.appid, secret: config.appsecret, code: code, grant_type: authorization_code } }); const data tokenResp.data; if (data.errcode) { // 常見40029 code 無效40163 code 已被使用 return res.status(400).json(data); } res.json({ openid: data.openid, access_token: data.access_token, refresh_token: data.refresh_token, expires_in: data.expires_in, scope: data.scope }); }); app.get(/wx/oauth/userinfo, async (req, res) { const accessToken req.query.access_token; const openid req.query.openid; if (!accessToken || !openid) return res.status(400).send(missing params); const userResp await axios.get(WECHAT_USERINFO_URL, { params: { access_token: accessToken, openid: openid, lang: zh_CN } }); const data userResp.data; if (data.errcode) return res.status(400).json(data); res.json({ openid: data.openid, nickname: data.nickname, headimgurl: data.headimgurl, unionid: data.unionid }); }); app.listen(3000, () { console.log(wx oauth proxy listening on 3000); });token 接口返回的 access_token 是「網(wǎng)頁授權(quán) access_token」有效期 2 小時(shí)和公眾號(hào)全局 access_token 不是同一個(gè)東西不要混用。如果業(yè)務(wù)系統(tǒng)只需要 openid 做登錄態(tài)那 access_token 甚至可以不返回直接返回 openid 和用戶資料即可越少字段泄露越好。userinfo 接口依賴 scope 是 snsapi_userinfo。如果 authorize 時(shí)用的是 snsapi_base調(diào) userinfo 會(huì)報(bào)錯(cuò)因?yàn)殪o默授權(quán)根本拿不到訪問用戶資料的憑證。這個(gè)接口只對(duì)需要昵稱頭像的場(chǎng)景開放。4. 配置與部署公眾號(hào)后臺(tái) 4 個(gè)必填項(xiàng) 一條 curl 驗(yàn)證全鏈路4.1 公眾號(hào)后臺(tái)的配置順序AppID、AppSecret、IP 白名單、網(wǎng)頁授權(quán)域名代碼寫完先別急著啟動(dòng)公眾號(hào)后臺(tái)的配置順序錯(cuò)了后面全是坑。整個(gè)配置集中在「設(shè)置與開發(fā)」里按下面順序來配置項(xiàng)位置必填值常見錯(cuò)誤AppID基本配置 → 公眾號(hào)開發(fā)信息以 wx 開頭的 18 位字符串填成了原始 IDAppSecret基本配置 → 公眾號(hào)開發(fā)信息32 位字符串泄露到了前端代碼里IP 白名單基本配置 → IP 白名單中轉(zhuǎn)服務(wù)器的公網(wǎng) IP沒配置調(diào)用 token 接口報(bào) 40164網(wǎng)頁授權(quán)域名公眾號(hào)設(shè)置 → 功能設(shè)置中轉(zhuǎn)域名如 oauth.example.com帶了 https:// 或路徑AppSecret 的 IP 白名單只對(duì) api.weixin.qq.com 的調(diào)用生效你服務(wù)器 IP 變了token 接口立刻返回「invalid ip ... from x.x.x.x」。我踩過一次本地調(diào)試時(shí)把家里 IP 加進(jìn)去了第二天到公司又報(bào)錯(cuò)最后把白名單配成了 0.0.0.0/0 才消停但這樣安全性會(huì)降低能用云服務(wù)器的固定出口 IP 就不要偷懶。網(wǎng)頁授權(quán)域名填的是不帶協(xié)議頭、不帶路徑的裸域名。填oauth.example.com就只填這一行后面的/wx/oauth/callback是代碼里拼的跟后臺(tái)配置無關(guān)。后臺(tái)校驗(yàn)的是 host 部分協(xié)議頭、端口、路徑統(tǒng)統(tǒng)不認(rèn)。4.2 Nginx 反代與 HTTPS回調(diào)域名必須公網(wǎng)可訪問微信服務(wù)器回調(diào)你的域名時(shí)走的是公網(wǎng) HTTPS所以中轉(zhuǎn)服務(wù)前面必須有一個(gè)能完成 TLS 終止的入口。常見做法是 Nginx 反代到 Node 服務(wù)的 3000 端口同時(shí)配好 HTTPS 證書。server { listen 443 ssl; server_name oauth.example.com; ssl_certificate /etc/nginx/cert/oauth.pem; ssl_certificate_key /etc/nginx/cert/oauth.key; location / { proxy_pass http://127.0.0.1:3000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-Proto $scheme; } }域名必須是公網(wǎng) DNS 可解析的證書不能過期443 端口不能被防火墻擋掉。微信官方要求回調(diào)地址必須是 HTTPS所以妥協(xié)會(huì)被直接攔下來。國內(nèi)服務(wù)器還要注意域名備案未備案域名在微信側(cè)的校驗(yàn)基本過不了這個(gè)提前確認(rèn)好不然后面改域名改到想罵人。4.3 用 curl 和 Postman 驗(yàn)證回調(diào)鏈路完整閉環(huán)部署完成后第一件事不是寫業(yè)務(wù)代碼而是手動(dòng)驗(yàn)證整條鏈路。用瀏覽器打開 authorize 鏈接觀察跳轉(zhuǎn)過程# 瀏覽器手動(dòng)訪問下面的地址微信會(huì)跳轉(zhuǎn)到中轉(zhuǎn)服務(wù)再回到業(yè)務(wù)系統(tǒng) curl -v https://open.weixin.qq.com/connect/oauth2/authorize?appidwxYOUR_APPIDredirect_urihttps%3A%2F%2Foauth.example.com%2Fwx%2Foauth%2Fcallbackresponse_typecodescopesnsapi_basestatedemo#wechat_redirect#wechat_redirect是微信要求的固定后綴存在 URL 片段里瀏覽器不會(huì)把它發(fā)送到服務(wù)器curl 訪問時(shí)會(huì)忽略它這是正常的。如果一切正常瀏覽器最終會(huì)落在你配置的業(yè)務(wù)回調(diào)地址上URL 里帶 code 和 state 兩個(gè)參數(shù)。拿到 code 后用 Postman 或者 curl 模擬登錄接口調(diào)用驗(yàn)證換 token 是否成功curl -s https://api.weixin.qq.com/sns/oauth2/access_token?appidwxYOUR_APPIDsecretYOUR_APP_SECRETcodeCODEgrant_typeauthorization_code正常情況下返回的 JSON 里包含 openid、access_token、expires_in 和 scope。如果返回 errcode先看 errmsg常見的 40029 表示 code 無效或已被使用需要重新走一遍授權(quán)流程。用 Postman 模擬登錄接口調(diào)用時(shí)要特別注意授權(quán)頁到回調(diào)的過程必須在真實(shí)瀏覽器里完成Postman 只能模擬第二步的 token 換取。因?yàn)?authorize 鏈接需要用戶登錄微信確認(rèn)這一步繞不開真實(shí)環(huán)境。5. 無限回調(diào)登錄的 5 個(gè)踩坑記錄從報(bào)錯(cuò)碼到日志排查5.1 現(xiàn)象微信提示「鏈接內(nèi)容不屬于當(dāng)前公眾號(hào)」用戶從公眾號(hào)菜單點(diǎn)進(jìn)頁面頁面內(nèi)跳轉(zhuǎn)到業(yè)務(wù)系統(tǒng)后微信直接攔截提示「鏈接內(nèi)容不屬于當(dāng)前公眾號(hào)」。這個(gè)報(bào)錯(cuò)最容易出現(xiàn)在頁面里嵌入了其他域名資源或者頁面跳轉(zhuǎn)到了沒有在公眾號(hào)后臺(tái)配置的域名。原因微信內(nèi)置瀏覽器會(huì)校驗(yàn)?zāi)闼陧撁娴挠蛎凸娞?hào)后臺(tái)配置的可信域名是否匹配。中轉(zhuǎn)域名只解決了網(wǎng)頁授權(quán)回調(diào)的校驗(yàn)如果業(yè)務(wù)頁面里有靜態(tài)資源來自另一個(gè)域名或者業(yè)務(wù)系統(tǒng)又做了一次二次跳轉(zhuǎn)微信同樣會(huì)攔截。解決把業(yè)務(wù)系統(tǒng)用到的所有靜態(tài)資源域名加進(jìn)「JS 接口安全域名」業(yè)務(wù)頁面盡量不要二次跨域跳轉(zhuǎn)。如果業(yè)務(wù)地址確實(shí)需要重定向讓中轉(zhuǎn)服務(wù)的回調(diào)直接落地到最終頁面而不是落到一個(gè)中間頁再跳一次。這一步很玄學(xué)明明鏈路通著微信就是不放過你最后你會(huì)發(fā)現(xiàn)就是多跳了一次的問題。5.2 現(xiàn)象code 換 token 報(bào) 40029 或 40163回調(diào)成功了但調(diào) token 接口時(shí)微信返回 40029code 無效或 40163code 已被使用。原因微信的 code 是嚴(yán)格一次性的有效期 5 分鐘使用過一次立即失效。兩個(gè)常見場(chǎng)景會(huì)觸發(fā)一是業(yè)務(wù)系統(tǒng)拿到 code 后又刷新了一次頁面導(dǎo)致同一個(gè) code 被消費(fèi)兩次二是中轉(zhuǎn)服務(wù)的 callback 接口把 code 302 回業(yè)務(wù)系統(tǒng)后業(yè)務(wù)系統(tǒng)又拿這個(gè) code 直接去調(diào)微信 token 接口而你中轉(zhuǎn)服務(wù)也調(diào)了一次兩邊搶同一個(gè) code。解決把換 token 的邏輯完全收斂到中轉(zhuǎn)服務(wù)的/wx/oauth/token業(yè)務(wù)系統(tǒng)只認(rèn)最終返回的 openid不允許業(yè)務(wù)側(cè)直連微信 token 接口。同時(shí)callback 接口里記得加一行日志記錄 code 的前四位和來源 IP排查時(shí)能快速確認(rèn)是不是重復(fù)消費(fèi)。5.3 現(xiàn)象redirect_uri 參數(shù)錯(cuò)誤域名與回調(diào)地址對(duì)不上瀏覽器訪問 authorize 鏈接后微信直接跳到錯(cuò)誤頁提示 redirect_uri 參數(shù)錯(cuò)誤。原因公眾號(hào)后臺(tái)的網(wǎng)頁授權(quán)域名與 authorize 鏈接里 redirect_uri 的 host 不一致。常見的有三種寫法錯(cuò)誤后臺(tái)配了oauth.example.com但鏈接里寫成了oauth.example.com/wx/callback的完整路徑——路徑本身沒問題問題往往出在協(xié)議頭上或者后臺(tái)配置時(shí)帶了https://前綴微信把整個(gè)字符串當(dāng)成域名處理了。解決把后臺(tái)域名清成純域名不帶協(xié)議、不帶端口、不帶路徑。然后核對(duì)中轉(zhuǎn)服務(wù) config.js 里的 proxyHost 和后臺(tái)配置的域名必須完全一致連大小寫都不能差。我建議在 config.js 里加一個(gè)啟動(dòng)時(shí)自檢打印出 proxyHost 和 appid每次部署后看一眼避免配錯(cuò)環(huán)境。5.4 現(xiàn)象state 參數(shù)丟了或亂碼業(yè)務(wù)側(cè)對(duì)不上會(huì)話業(yè)務(wù)系統(tǒng)明明傳了 state回調(diào)回來時(shí) state 變成了別的值或者直接沒有。原因微信對(duì) state 的約束是「原樣回傳」但很多人在拼 authorize 鏈接時(shí)對(duì) state 做了二次 URL 編碼微信回跳后解碼一次自己也解碼一次兩層嵌套編碼互相抵消導(dǎo)致亂碼。另一個(gè)原因是把業(yè)務(wù)回調(diào)地址直接塞進(jìn) stateURL 太長被瀏覽器或微信截?cái)?。解決業(yè)務(wù)系統(tǒng)傳給中轉(zhuǎn)服務(wù)的 state 只放短字符串比如用戶會(huì)話 id 或隨機(jī)串不要放完整 URL。中轉(zhuǎn)服務(wù)回跳時(shí)對(duì) state 做一次 encodeURIComponent 就夠前端拿到后 decodeURIComponent 一次。至于業(yè)務(wù)回調(diào)地址已經(jīng)被存進(jìn)臨時(shí)會(huì)話了根本不需要進(jìn) state別把它放進(jìn)去。5.5 現(xiàn)象本地聯(lián)調(diào)時(shí)微信回調(diào)打不到 localhost代碼在本地跑得好好的微信公眾號(hào)測(cè)試號(hào)也配了但微信回調(diào)就是不到本地服務(wù)。原因微信服務(wù)器訪問的是公網(wǎng)localhost 只有你本地機(jī)器能訪問。常見的錯(cuò)誤是以為配了公眾號(hào)后臺(tái)的網(wǎng)頁授權(quán)域名就等于微信能訪問到你本機(jī)的服務(wù)。解決本地聯(lián)調(diào)不要用 localhost用一臺(tái)有公網(wǎng) IP 的測(cè)試服務(wù)器把測(cè)試服務(wù)器地址配成網(wǎng)頁授權(quán)域名。個(gè)人開發(fā)者建議直接用微信公眾號(hào)測(cè)試號(hào)調(diào)試測(cè)試號(hào)后臺(tái)可以獨(dú)立配置網(wǎng)頁授權(quán)域名不占用正式號(hào)的配置額度。注意測(cè)試號(hào)的網(wǎng)頁授權(quán)同樣要求公網(wǎng)可達(dá)的 HTTPS 地址本地起服務(wù)加一層內(nèi)網(wǎng)映射工具也能做開發(fā)驗(yàn)證但生產(chǎn)環(huán)境永遠(yuǎn)不要依賴這類鏈路。6. 進(jìn)階把無限回調(diào)改造成多公眾號(hào)共用的登錄中心6.1 多公眾號(hào)共用一個(gè)中轉(zhuǎn)用 appid 參數(shù)路由當(dāng)你有多個(gè)公眾號(hào)或一個(gè)主體下多個(gè)服務(wù)號(hào)時(shí)中轉(zhuǎn)服務(wù)可以升級(jí)成登錄中心。config.js 從單一 appid 改成配置組根據(jù)請(qǐng)求里的 appid 參數(shù)動(dòng)態(tài)選擇對(duì)應(yīng)的憑證// config.js module.exports { apps: { wxYOUR_APPID_1: { appsecret: SECRET_1, name: 官網(wǎng)登錄 }, wxYOUR_APPID_2: { appsecret: SECRET_2, name: 管理后臺(tái)登錄 } }, proxyHost: https://oauth.example.com, sessionTtl: 600 };authorize 接口增加一個(gè)必傳的 appid 參數(shù)callback 和 token 接口從會(huì)話里取出 appid再用它去找對(duì)應(yīng)的 AppSecret。業(yè)務(wù)系統(tǒng)各自傳自己的 appid互不干擾。這樣一個(gè)中轉(zhuǎn)域名就能支撐多個(gè)公眾號(hào)的登錄回調(diào)后臺(tái)的網(wǎng)頁授權(quán)域名配置依然只此一個(gè)。6.2 驗(yàn)證登錄閉環(huán)的每日檢查清單登錄鏈路是典型的黑匣子跳轉(zhuǎn)多、環(huán)節(jié)多出錯(cuò)時(shí)頁面往往只顯示一個(gè)空白或錯(cuò)誤碼。我現(xiàn)在的習(xí)慣是每上線前手動(dòng)走一遍完整流程只看三處日志中轉(zhuǎn)服務(wù)的訪問日志里authorize 請(qǐng)求是否出現(xiàn)sid 是否正確生成。微信回調(diào)到 callback 接口后session 能否正常取出code 是否只被消費(fèi)一次。token 接口返回的 openid 是否和預(yù)期用戶一致scope 是 snsapi_base 還是 snsapi_userinfo。如果第 2 步出現(xiàn) session 取不到基本可以斷定是會(huì)話過期或回調(diào)地址拼錯(cuò)第 3 步的 openid 每次登錄都變化大概率是 appid 和 AppSecret 配錯(cuò)了號(hào)。檢查清單固定下來之后這個(gè)方案的問題基本都能在五分鐘內(nèi)定位不用再靠玄學(xué)猜。希望幫到你。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
男人天堂无码| 丁香五月综合| 日本羞羞的视频在线播放| 中文字幕日韩精品一区二区三区| 视频国产精品未满十八禁止在线观看| 欧美亚洲丝袜人妻制服中文99| 久久国产精品91| 美国人人操人人操| 国产综合色精品在线观看| 日本一区99| 九九久久99| 99久久久久久亚洲精品不卡| 精品无码少妇| 日夜尻逼网| 蜜臀久久99精品久久久老,,| 国模精品一区二区三区苹果色戒| 欧美日韩*字幕一区| 97亚洲在线| 亚洲精品 欧美精品| 综合色色网| 秋霞免费无码视频日韩A片| 久久99草| 中文字幕第二页| 夜夜操天天肏| 中文字幕高清20页视频| 狠狠色噜噜狠狠狠狠狠色综合久久| 啊啊啊啊啊在线| 91国精产品| 午夜天天碰综合视频| 国产99久久99热这里只有精品15| 成 人片 黄色大片| 欧美一区二区男人天堂| 精品一区二区三区免费古装毛片香港三级日本三级人妇 | 欧洲亚洲国产综合在线| 亚洲av综合色区无码一| 国产无码高清操逼视频| 日韩综合色网| 99国产精品| 美欧色综合| 久久噜噜噜精品国产亚洲综合| 一区久久久二区| 91久久久久免| 天天淫人人妻日日色| 超碰人人超在线观看| 亚洲国产欧美另类自拍| 樱花蜜乳av| 男人的天堂午夜av| 嗯啊视频免费在线观看| 亚洲蜜乳av| 天天日天天干天天色| 91天天| 色偷偷2020免费视频播放| 高跟伊人julia ann| 日韩伦理久 久久 清纯| 欧美亚洲AN| 日日橹狠狠爱欧美超碰| 少妇内射视频| 97在线免费| A级国产欧美激情在线| 97精品久久| 日韩性爱小视频| 自拍偷拍草一草| 粉嫩av久久一区二区三区| 国产无码久久高清| 无码黑人精品一区二区三区三| 八戒午夜福利理论片| 日本一区二区三区午夜观看| 强奸xx国产| 色色国产| 综合大香蕉美。| 中文无线日韩一区| 日日夜夜精品视频| 精品一区二区成人| 久久婷婷伊人| 亚洲美女30b| 另类专区加勒比| 亚洲精品久久久久久| 东京热毛片调教| 亚洲熟女诱惑| 成人免费看吃奶视频网站| 中文字幕AV乱伦| 亚欧性爱ab| 欧美日韩性爱视屏免费看了| 亚洲一区二区麻豆影院| 欧美在线中M| 精品少妇人妻一区二区三区| 亚洲欧美第一页| 国产精品久久99日日| 色婷婷五月综合激情中文字幕| 五月丁香综合| 91N综合网在线| 欧美在线干| 翔田千里AV无码秘 三区| 无码丰满熟妇一区二区浪潮AV| 国产黄色 A 片免费看| 色色色综合网| 精品人妻一区春色| 亚洲欧美色图片| 顶级丝袜熟女一区二区三区| 欲色影视综合吧| 东京热天堂网| 性开放中文AV高清无码免费看| www.婷婷六月天| 亚洲永久永久永久永久一级一级一级精品| 黄站在线免费观看| 日本免费专区| 亚洲国产成人精品久久久国产成人一区二区 | 18禁久极品美女久久哦哟呀!| 日韩精品三级片长长久久| 在线看污网站| 欧美国产日韩高清在线| 人人澡人人弄| 男人的天堂 在线一区| 91快色色色色色| 按摩中文字幕| 青娱乐休闲视频在线观看| 中国东北熟女老太婆内谢| 麻豆久久久久久久久丝袜 | 青青操狠狠撩| 久干网| 久久午夜色播影院免费高清| 丁香色五月 97干| 九九九九一级| 丰满人妻av一区二区三区| 天天综合网久久ww| 国产精品一区二区亚洲人成毛片| 少妇国产不卡| 成人一二| 成人影 天天操 亚洲| 欧美se综合| 亚洲精品中文字幕一区在线视频| 精品国产乱码久久久兰草影视| 国产品精品自在在线午夜免费| 精品欧美А∨无码黑人大荫蒂| 神马久久久久眼| 91五十路| 欧美白嫩女HD| 天美麻花大全视频| 黄页av| 亚洲人精| 手机在线免费看的av| 密臀在线免费观看| 中文日本免费高清| 天天天堂影视日韩亚洲91| 国产99精品一区二区三区免费| 啊啊啊在线观看免费视频| 思思热在线视频免费| 午夜呻吟欧美| 十八禁视频一区二区| 一区二区三区四区久久视1| 777AV电影| 蜜桃久久久久久久久久久久| 成人免费福利在线观看| 极品出轨视频网站| 中文伊人大香蕉视频| 中文字幕后石码三区四区| 国内精品久久国产,www香蕉久久五月丁香,亚洲欧美日韩精品永久在线,日本精品一 | 亚洲国内精品成人不卡| 粉嫩不卡一区二区性爱| 99少妇| 婷婷伊人一区| 少妇高潮对白在线观看| 国产精品国产精品国产| 日本中文字幕熟妇| 五月激情啪啪| 伊人一区二区在线播放| 偷拍导航视频网站| 亚洲色图欧美色图制服丝袜| 国产精品极品美女视频| 中文 人妻 制服| 中文一区二区婷婷视频| 免费作爱一级视频| 免费成人自拍视频在线| 中文在线视频| 国产精品成人蜜臀AV在线| 91 综合网| 四季AV综合网址| a天堂视频| 亚洲中文字幕精品一区| 欧成人在线| 一区二区三区网站日日骚| 免费一级黄色录像影片| 91亚洲人| 人人妻人人色一区二区三区| 亚洲男人天堂2012| 密桃99999| 一本色道久久天天射天天干| 精品91日日夜夜超清资源| 使劲用力艹少妇视频一区二区 | 激情小说亚洲图片| 久久精品免费| 日韩人妻大香蕉| 美女操逼福利视频| 精品高清av中文字幕| 亚洲码和欧洲精品激情系列| 成人情色一区二区| 欧美三级中文字幕hd| 99re超碰| 欧美精品激情| 欧美少妇高潮视频| 亚春色色| 超碰人妻97| 91蜜桃传媒精品久久久一区二区| 亚洲色图国产另类| 91n免费处女| 亚洲另类久操网| 99操逼| 国产福利小视频高清在线观看| 免费精品无码一级毛片牛牛影视 | 国产无码精品无码| 亚洲综合20p| 国内精品久9| 影音先锋一区二区在线资源| 亚洲精品欧美专业| 日韩 欧美 国产 麻豆| 色爱欲亚洲| 大香蕉97久久| 超碰人人乐97| 欧美亚洲日韩16色| 97中文字幕色| 亚洲视频二区| 日韩精彩视频| 人爽不卡视频| 精品福利| 久久中文字幕一区不卡| 国模私拍一区二区三区神乳| 99婷婷一区二区| 日产欧美电影一区二区三区| 老司机深夜18禁污污网站| 综合久久久久久久久91| 欧美性爱第一页久久| 亚洲婷婷综合网| 天天影视色香欲综合网小说| 人妻无一区二区三区| 成人av性爱电影在线观看| 污色区网站| 9 1果冻精品视频| 蜜桃臀一区二区aV| 日韩天天综合| 在线综合 亚洲 欧美中文字幕 | 偷拍在线观看视频| 欧美黑人168页欧美黑人167| 校园春色美腿丝袜| 亚洲激情片| 老熟妇乱轮| 久思思热视频在线观看| 亚洲AV秘 精品久久老牛影视| 国产精品一区二区三区,亚洲综合 性开放中文AV高清无码免费看 | 另类图片亚洲加勒比另类图片亚洲加勒比另类图片亚洲加勒比 | 亚洲AV秘 精品久久老牛影视| 天堂无码精品国产久| 亚洲超碰AV| 曰韩精品九九无码| 男人的天堂欧美| 国产精品 午夜福利| 日本久久999| 丰满少妇精品一区二区| 成人免费性爱视视| 影音先锋国产精品| 精品国产一区二区三区久久久蜜臀| 精品一区二区三区四区女| 天操天操夜操夜月月年年操操| 亚洲美女高潮喷水视频| 88xx成人精品视频| 操一区| 麻豆国产原创AV色哟哟| 人妻激情视频| 一区操逼| 99视频内射三四| 中日韩久久人妻一区二区| 中文字幕在线第二页| 一二三区精品视频| 无码国产精品久久久久| 亚洲精品丝袜| 啊啊啊啊免费视频| 久久av一级av少妇av高潮 | 免费网站观看www在线观| 97视频900| 蜜臀久久99精品久久久电影| 午夜精品视频777| 超碰性爱97| 亚洲丝袜在线观看| 午夜120视频在线观看| 碰碰在线视频| 一二三区视频在线观看| 中国大陆国产高清AⅤ毛片| 日韩乱码Av| 天天操福利视频综合网站| 草莓精品视频在线免费观看| 少妇免费视频| 91香蕉国产尤物视频| aaa一级黄片| 91九九九吃| 久久专区| 亚洲AV无码| 国产精品伦理| 五月婷婷大香蕉| 试看60秒| 亚洲第一无码播放立川理惠| 一区二区亚州激情久婷婷欧美 | 亚洲一区二区专区-国产丝袜精品丝袜-成人AV | 男人的天堂1024| 成人乱码一区二区三少妇| 欧美伦乱爱| 日韩簧片免费看| 婷婷综合五月天| 秋霞午夜视频一区二区| 美国一区二区三区视频| 欧美一区二区三区成人性生活 | 清清草影| 国产精品成人福利在线| 99热国产精品| 中文字幕 国产区| 啊啊啊啊好大好硬啊啊啊啊啊 | 色婷婷电影网| 日本国产欧美一区三区二区| 久久久久久久九九九九九九| 综合影院永久入口国产| 欧美精品偷拍| 超碰人妻天天干| 久久久久久少妇| 操我无码| 99999精品| 国产suv精品一区二区四| 91亚洲高清| 热天堂一区二区| 国产第12页| 超碰在线97国产| 国产精品久久久无码AV网站| 9Ⅰ超碰| 最新加勒比丝袜在线| 大香蕉一级黄色片久久| 啊啊啊不要啊啊受不了了视频在线| 十八禁视频一区二区| 九久9热| 亚洲乱色熟女一区| 极品人妻少妇综合| 日韩美女高潮喷水视频| 精品人人插人人操| 中文乱码字字幕在线第5页| 欧亚日韩三区| 免费看一级a性色生活片久久无| 午夜操一视频一区| 97精品第3页| 熟女乱伦二区| 黄色香蕉视频网站一区| 久久精品高清无码一区| 天天爽爽爽爽| 强奸乱伦AV网站| 18精品一二区| 手机久操欧美综合色码| 91一区二区| 伊人影院日本| 老熟女91视频| 激情文学 亚洲图片| 天天插天天干| 亚洲一欧洲中文字幕在线| 97国产精品久久久久| 欧美亚涩| 国产精选三级在线观看| 人妻丰满熟妇一区二区三| 91久久国产精品| 国产偷仑| 大伊香蕉在线视频免费| 亚洲国产精品9999在线观看| 美女黄站| av天堂加勒比| 亚洲文学偷乱拍啪啪啪啪| 96精品在线| 综合免费无码中文| 美女裸体无遮挡永久免费观看网站| 2017天天透天天通天天擦| 在线观看十八禁| 92人人操人人| 噜噜噜在线视频| 张柏芝国产一区在线观看| 久久后入制服| 视频二区熟女人妻| 99啪| 校园春色 男人天堂 | 久久香蕉超碰97国产精品| 九九色色| 久热伊人| 巨爆乳肉感一区二区三区竹菊影视| 天天躁日日躁AAAAXXXX国产 | 97色婷| 美女黄频a美女大全免费皮| 熟女这里只有精品6| 久久久97| 免费AV中文网在线观看| 福利视频香蕉免费一区二区在线| 久热这里| 欧美日韩狠狠爱| 丝袜美腿丝袜| 啊啊啊啊免费视频| 精品黄色电影| 毛片一区二区| 国产精品一区二区手机看片| 亚州操逼网| 中文字幕中文字幕一区二区| 久久五十路熟女人妻| 思思热在线视频免费| 久久精品一区二区| 99久久久久久亚洲精品不卡| 日本操色导航| 97国产高清视频在线观看| 操逼啊啊啊91| 偷窥自拍亚洲天堂网爆| 99只有精品| 69精品少妇一区二区三区蜜桃| 亚洲日本韩国在线| 后X久久| 色哟哟-国产专区| 青青操在线亚洲视频观看欧美在线 | 岛国视频一二三区| 亚洲欧洲国产综合av| 日欧操屄视频| 色婷五月天| 九九精品美女高溯喷水| 啊啊啊啊啊在线视频| 熟女高潮合集-永久久久-成人AV | 高清无码91| 亚洲久久久久| 日日摸夜夜夜夜爽| 亚洲欧美精品91| 久久久久久大| 骚货 中文字幕 av| 2019天天干| 亚洲国产一区二区入口| 超碰在线99| 野狼激情网| 四季AV一区二区凹凸精品小说| 成人十八禁日韩欧美一二三| 九九九九九九九九九国产精品| 亚洲一二三四区| 一类av片在线看| 2024人人操人人摸| 久久久久久久久久久人妻| 69久久久久久久久久久久久| 日韩情色一区二区| 国产精品久久久久久片| 日韩欧美成人大香蕉| av亚洲天堂资源网站| 国产精品69久久久久久久| 97九色| 人人干人人操人人..com| 亚欧精品久久久久久久久久久| 久久中出在线| 搡老女人老熟女91老熟女综合网| 日韩欧美中文| 中文字幕乱码人妻一区二区三区,99精品| 美女干逼2| 26uuu最新| 日韩一级片在线看| 天天操天天日青青草超碰av| 99精品国产户外露出| 免费一级视频特黄色大片| 超碰在线974| 91精品婷婷国产综合久久| 日韩欧美大力操| 精品色色| 欧美色图欧美| 精品国产肉丝袜在线拍国语| 久久久男人的天堂| 五码视频在线观看| 中文激情网| 亚洲国产中文字幕| 欧美一区二区福利在线| 18精品一区| 91爱网| 欧美日韩性爱视屏免费看了| 欧美九一精品久久久熟妇| 成人性爱AV在线免费观看| 无码人妻一区二区一牛影视| 天天综合网~91综合网| 欧美成人A天堂片在线观看| 国产久久视频| 精品日韩人妻精品一二三区| 亚州成人a∨| 天天射夜夜操| 美腿色图| 伊人国产成人av网站| 色哟哟的毛片| 亚洲综合97| 婷婷色综合| 97视频免费| 很很热性爱视频| 91超碰在线播放| 久久毛卡| 麻豆三极片| 色婷五月天| 骚逼一区二区| 91日本在线观看| 欧美最大综合网| 性色avv| 东京热一区二区中文字幕| 伊人操你| 伊人网高清| 婷婷8月天青娱乐| 99精品丰满人妻| 亚洲中文字幕乱码无码一区二区| 白嫩国模丰满一二三区| 丁香六月激情| 东京热天堂网| 国产97视频| 久区视频| 果冻传媒A片麻豆熟妇人妻| 激情综合av| 日本大片日本一区二区免费高清| 狠狠中文字幕| 亚洲啪AⅤ永久无码| 亚洲 欧美 精品专区 极品| 热久久无毒不卡| 欧洲精品久久| 欧美韩日精品99综合| 久久內射| 青青久操| 好吊爽好吊爽在线视频,中文字幕精品一区二区日本,国产良妇出轨视频在线观看, | 色综合一区二区三巨| 强奸a片网| 伊人影院综合是一个与深夜成人在线| 91N综合网在线| 韩国一级AAA| 色区97| 亚洲日本天堂| 亚洲天堂无码| 成人性爱视频在线看| 成人a大片在线观看| 最新三级网址| 久久婷婷五月天| 日本操BAV| 成人欧美一区二区三区黑人一| 国产精品电影| 丝袜综合| 99re黄| 黑人精品XXX一区一二区| 91人妻精华帖| 人妻精品一区二区在线| 青青草久久一区网| 2017天天插| 国产午夜激片Av毛片不卡| 少妇xx精品| 欧美制服网站美腿丝袜| 九九天堂| 97色操| 日韩精品亚洲专区在线影视| 能看的AV| 东方亚洲在线操逼天堂| 情色大香蕉| 正在播放国产精品一区| 婷婷色综合| 欧美综合网1| 91免费看一区二区三区| 97色欧州| 英伦大奶子熟妇吊带| 美女好片色日本| 口爆欧美91| 最新9久久久9免费视频| 色妇综合网| 狠狠亚洲| 天美传媒av在线| 26UUU欧美日本| 亚洲成人碰碰| 一卡二卡三卡| 26uuu欧美| 精品无码一区二区三区| 强奸乱伦中文字幕AV| 香蕉免费一区二区三区不读 | 色综合天天| 日韩一级二级三级| 久9久9精品| 啊啊啊男女| 欧美呦呦性爱| julia高潮后不停追击中出| 天天影视综合网欧美精品| 国产精品天干天干综合网麻豆| 亚洲高潮影院| 东京热一区二区三区四区五区六区| 国产高清不卡视频| 国产高清精品一区二区三区毛片| juliaann丝袜大战黑鬼| 国产在线精品电影观看| 欧美亚洲美少妇一区二区| 日日干天天干夜夜爽| 国产男女无套97| 国产av波波国产精品| 国产一区二区精品久久久不卡蜜臀| 婷婷久久久| 在线播放成人高清免费视频| 啊啊啊啊好大好硬啊啊啊啊啊| 欧美黑人精品一区二区| 精彩久久中文| 中文有码第五页| 午夜久久无码1000合集| 蜜臀久久99精品久久久久久无删减 | WWW美腿丝袜香蕉中文| 人人看人人摸人人色| 偷拍盗拍亚洲色图图片| 97人人干| 大干人妻| 国产成人手机视频激情| 中文字幕激情小说| 国产福利视频精品视频| 激情综合网激情综合| 天天操天天日青青草超碰av| 亚洲五区熟女| 久9久| 2020国产精品| 天天干,天天日| 九九久久久| 特级大荫道BBwBBwBBW| 亚洲日韩美国人妻| 天美国产三级传媒| 日本色婷婷| 成年人一级黄色毛片大全在线观看| 欧美人人曰人人操人人射射| 欧美一级在线观看成人| 俺也射| 天天日美女的B| 日欧美色| 成人久久无码www| 一区在线观看中文字幕| 日韩国产品视频中文字| 午夜舔阴达高潮视频免费看| 91女优在线观看| 91精品久久久久久77777| 美日韩在线不卡人妻| 欧美色图私拍91| 日韩精品人妻中文字幕有码午| 混色激情av| 美女露胸露屁股| 99色婷婷中文字幕乱色| 中文字幕乱偷人妻久久艾草网| 90后性网国产欧美| 伊人一区二区在线播放| 噜噜噜在线视频| 综合自拍| 久久免费中文字幕在线观看| 亚洲最大91网| 99热日| 97超碰影音| 另类图片综合| 人妻 中文 日韩| 开心激情站| 国产又大又粗又色生活片亚洲国产精品成人久久久综合免费 | 精品一区二区三区蜜桃| 激情欧美97| 成人av影院在线观看| 抽插无码高清一区| 九九热九九热| 美女网站黄页| 日本淫乱女一区二区三区视频| 色综合久久av| 91视频国品一二三区| 亚洲精品1区| 精品十八在线观看| 欧美色院| 99无码视频| 精品美女人人干| 欧美一区二区三区四区综合| 久久国产视频性吧| 久久蜜色情在线视频xxx免费观看| 男人天堂最新手机版在线青青草| 操逼免费视频无码国产| 夜夜操狠狠操| 欧美后入式| 囯产乱伦一区二区三女| 老熟妇综合| 岛国免费视频在线| 国产精品久久久视频| 日本熟妇自慰性高潮一区二区三区| 欧美特大AA级黄片| 97超碰无码网| 激情视频图片| A级片日韩欧美国产欧美视频精选观看 | 久色网| 日韩人人精品| 91成人精品在线播放| 综合97久久| 嫩草影院在线观看精品 | 蜜臀精品1区2区| a片偷拍视频| 久久久久9| 99久久综合网| 999精品久久久久久久| 超碰超碰欧美| 午夜偷拍久久熟女| 激情小说亚洲视频| 福利在线黄片| 久久久久久九| 在线综合 亚洲 欧美中文字幕| 老熟女搡BBBB搡BBBB视频| 做爱福利视频一区二区| 在线看免费无码AV天堂的| 裸体1区| 亚洲蜜桃V妇女| 屁股久久久久久久久久| 久久只有精品一区二区三区| 精品无码久久久久久国产浪潮| 精爱久久| 日本在线一二 | 欧美一级在线观看成人| 91久久精品国产| 呦呦一区| 超碰在线日韩一区| 日本大香蕉| 丁香五月色情| 熟妇熟女一区二区三区| 天天欧美97| 99re6国产精品99re| 91成人在线免费视频| 欧美韩日精品99综合| 久久久久久久久久va| www网站黄| 九久久九精品视频| 日本幼女18+| 超碰超碰欧美| 九九在线精品| 翔田千里AV无码秘 三区| 欧美最大综合网| 婷婷五月天激情四射| 97伦综合| 欧美黑人168页欧美黑人167| 亚洲aw毛茸茸在线| 日本超碰在线国产一区| 97网址www| 亚洲情色第一页| 无码免费精品高清| 91在线视频观看国产| 亚州一区二区| 国产成人拍国产亚洲精品| s片在线观看| 人人色人人操在线| 正在播放国产精品一区| 九九九九热| 亚洲天堂,男人| 色综合久| 啪啪AV导航| 久久精视频美日韩在线视频| 亚洲欧美综合区自拍另类| 国产高清吃奶免费视频网站| 久久久久免费看少妇A片特黄| 大香蕉视频一二三区| 中文字幕乱在线伦视频中文字幕乱码在线 | 国产精品第一区第一页| 欧美大香蕉同搞| 天天日少妇逼AV| 99自拍B亚洲 | 操迟操逼在巾线Fre看| 日本1区2区不卡视频| 五月天丁香网| 最新中文字幕av| 性色综合网| 久久精品中文字幕无码l| 麻豆天美国美国产| 97欧美综合网| 能直接看AV的网站| 78久久久| 欧美色图 色综合图| 五月天综合在线| 亚洲色棕合| 日韩精品在线观看观看| 宅男91视频在线播放| 亚洲少妇综合| 蜜臀操逼黄色视频操的好爽| 亚州综合色图| 2019久久久久久久久福利| 婷婷情色五月天| 亚洲乱码精品一区二区| 91美女在线精品视频| 亚洲成人贴图| 精品无码一区二区| 超碰美女97| 婷婷激情四射| 我想要 啊 啊 啊| 日本一级一级一级一级| 亚洲乱妇p22| 中文字幕AV片| 久久综合国产精品国产| 91美女视频在线| 婷婷丁香九月| 久久久久久波多野吉衣高潮| 无码天天操| 欧美欧美少妇| 日韩精品电影| 三级日本一区二区三区| www.久久爱| 亚洲综合色在线| 中文人妻av高清一区| 久久久久性熟视频| 九九九精品色乱九九九| 国产少妇肉丝在线观看| 国产精品懂色tv影视免费观看| 精产国品一区二三产品| 美女被艹尤物视频| 无码人妻1727| 99re热| 日韩性爱电影一区| 99久久9| 老熟乱一区二区三区四区| 91狠狠狠| 夜夜嗨av午夜成人| 丁香六月婷婷| 99热这里只有精品9| 亚洲小电影免费涩涩成人在线高清| 精品性爱一二三区| 成人熟女视频一区二区三区| 男女香蕉一区二区| 日韩免费av片高清无码| 人妻少妇久久久| 中文字幕伊人| 亚洲性爱电影| 99久久久无码| 欧美天天搞| 牛牛aV| 亚洲日韩东京热一区| 2024年最新色情网站在线观看| 蜜乳Av成人片网站| 果冻传媒A片一二三区| 最新无码国产| 智利AV在线网| 亚洲中文制服诱惑| 亚洲字幕一区二区| 老熟女网站| 丝袜狠狠草尤物 91| 一品道视频一区二区三区| 日韩亚洲97| 欧美亚洲色图另类国产| 青青草久久一区网| 国产毛片片精品天天看视频| 欧洲色色| 熟女熟妇一区二区三四区| 欧美性爱另类综合| 五月天AV资源| 日本123区操B视频| 精品无av| 日本色婷婷| 欧美亚洲系列| 日韩精品区二区三区不卡| 丰满人妻-区二区三区免费看| 亚洲夜夜欢无码一区二区 | 啊啊啊好大好深| 91久久久久久| 久久久蜜桃臀无码视频| 欧美色棕合| 91久久久亚洲| 啊啊啊啊啊好大好舒服想要| 国产精品国产自产高清AV| 久久啊啊啊视频| 日欧亚洲二三区大片不卡| 青青欧洲黑| 玖玖玖玖精品国产剧情| 日本 情色 1区2区3区| 极品白嫩美女白浆成人福利在线看| 蜜臀在线看片| 亚洲国产精品久久久久久久久久| 五十路三区在线| 91天天日| 18禁免费视频| 九九久久国产精品怡红院| 国内毛片国产专区二| 色婷婷激情| 五月天精品| 激情婷婷五月天| 久久精品人妻一区| 免费看污网址| www.色操逼| 少妇久久久久久久久| 大香蕉99热| 在线人人人人人人精品超| 三四中文字幕| 殴美综合色88| 肉嘟嘟www视频在线观看高清| 超碰97男女| 黄总AV色图| 国产精选三级在线观看| 日韩少妇无码| 欧美熟女丝袜| 一区二区偷拍拍视频| 乱伦一区二区三区‘| 人妻少妇无码 | 粉嫩AV一区夜夜嗨| 五月丁香色情| 日韩黄色av中文字幕| 色网亚洲人| 艳尻美人妻| 99国产人成精品| 欧美日韩操操操| 日韩成人无码| 亚洲图片视频小说| 3PAV乱伦视频| 欧美性五月| av网站在线观看了| 人妻一区二区三区| 久久久久久久久久9| 熟女被操视频网址| 91痴汉| 无码丰满熟妇一区二区浪潮AV| 日韩国产乱子伦App| 亚洲二区精品在线观看| 欧洲与亚洲欧美精品中文字幕| 大香蕉欧美| 日本韩国一本产品小视频日本韩国一本产品久久久产品小视频日本韩国一本产品久 | 一起草三级AV电影在线观看| 国产精品丝袜久久亚洲不卡| 久久久久久亚洲精品不卡人乳 | 欧美一级做a爰片免费视频| 欧亚成人在线视频| 国语国产操逼伊人AV网| 熟妇国产免费一区| 欧美日韩性爱精品| 91视频在线观看18| 欧洲天天在线| 亚洲Av诱惑| 神马久久久久久久久久久久| 五月天开心网| 欧美特大黄一级片片免费| 国产精品网址| 亚洲激情在线观看一区| 国产精品人妻无码久久久互動交流 | 密桃99999| 操人91| 九九性爱网| 人人射人人操人人摸| 草草影院日本第一页| 亚洲**2021在线观看| 91亚洲色图| 嗯嗯啊啊操我| 97干97色| 欧美一区二区三区不卡高清视频| 高清无码人妻久久久一区二区三区aⅴ| 蜜桃AV天堂| 我爱操| 亚洲人妻色图| 国产精品一区二区密臀| 无码粉嫩白虎一线天b区| 怡春院久久| 少妇淫妇久久久久久久| 97se亚洲综合自| 狠狠爱大香蕉| 国产精品免费久久久久久久久久| 97干97色| 国产真乱mangent| 1级午夜影院费免区| 日韩综合无码色欲vv| 亚洲熟女精品| 93人人操人人| 中文字幕亚韩| 中文字幕在线日亚洲9| 婷婷视频网| 熟妇人妻精品一区二区视频色欲| 天天综合网一91网| 婷婷五月天久久精品视频一区二区三区| 亚洲精品一区二区三区新线路| 中文字幕加勒比海高清无码免费视频| 亚洲 图片 欧美 色图| 日日黄色三级网站| 久久精品99久久久久久| 成人AV在线网站| 亚洲色图一区二区三区| 囯产精品久久久久久久久久梁医生 | 日韩精品一区二区高清| 欧美一区二区福利在线| 人妻在线视频| 亚洲熟妇自偷自拍另欧美| 熟妇亚洲一区二区三区| 中文字幕神马久久| 黑人性欧美| 91精品无码久久久久久久| 国产大学生口爆吞精合集| 91精品久久久久久77777| 国产精品一区二区在钱播放| juliaann丝袜大战黑鬼| 综合熟妇一区二区三区| 一级一性爱免费视频| 不卡一区二区日本视频| 五月丁香六月婷| 91老熟女逼| 亚洲伊人久久精品影院| 日韩99999| 国产亚洲精品久久久久小| 视频分类 国内精品| 殴美,日韩国产伦精品| 一本久久精品中文字| 少妇激情一区二区三区视频| A级片日韩欧美国产欧美视频精选观看| 先锋色眉乱伦资源| 又黄又爽在线观看视频 | 久久精品国产AV一区二区三区| 一区三区啪啪| 亚洲人在线| 欧美性高潮| 日韩欧美成人性爱在线| 亚洲 欧美都市激情| 国产精品在线一区二区| 欧美一级黄色免费专区| 亚洲综合九九| 天堂涩涩| A片大香蕉在线| 99热| 蜜臀一二三区| 超碰色男人操熟女| 91在线|亚| 亚洲精品九九九九九九| 韩国一级AAA| 色 婷97| 欧美 亚洲| 26uuu国产免费观看| 97色97好| 久久久久亚洲Av无码专区老牛影视 | 丝袜综合| 熟女探花啪啪| 日本在线一二| 欧美午夜熟妇黑人精品91| av网页一区二区三区| 国产传媒一区日韩| 欧美性xxxxx狂欢| 好吊妞转入那个网| 久久久涩| 免费综合亚洲中文| 男人成人黄色视频在线观看免费下载| 熟妇xxxxx性春色| 草b在线 | 第45页一区二区| 99热| 啪啪视频mP4| 欧美中文字幕精品人妻| 五月婷婷深深爱| 久久日韩肥臀| 超碰成人免费| 激情综合 婷婷五月 红杏| 人人爱人人操人人性| 在线中文AV| 日韩国产成人自拍视频| 亚洲综合射| 色官网色综合| 操逼短片| 黄片在线免费在线观看| 久久久久久中文| 久9视频| 精品传媒在线一区| 伊人成人中文字幕久久网| 久草这里只有精品 | 欧美日韩资源| 久久久影院| 欧美精品二区视频在线| 9超碰免费| 亚洲成人一区二区精品| 九一国产精品| 99久久综合网| 嗯嗯啊好爽| 国产有码一区| 欧美精品日韩久久久九| 蜜臀久久精品久久久久视频| 黄片www.| 欧美色图 色综合图| 精品一区96| 国产特级毛片AAAAAA高潮流水 | 国产视频人人网| 日本熟女中文字幕一区| AV一起草在线| 一区二区视频你懂的| 亚洲成人性爱在线观看| 激情另类激情| 九九无码久久精品视频| 熟妇xxxxx性春色| 智利AV在线网| 国产免费一区二区三区最新不卡| 中文操逼字幕| 欧美亚洲高清不卡| 乱色视频中文字幕| 五十路熟女人妻一区二区在线观看| 亚洲AO在线| 秋霞免费AV| 欧美 亚洲 在线| 天天碰操中国年青熟妇| 精品国产久热在线观看| 97在线视频免费观看| 搞中出视频在线观看| 2020国产精品| 20cm女自慰在线日韩欧美| 天海翼久久| 最新AVzaixian| 亚洲一欧洲中文字幕在线| 97免费视频在线| 中文字幕、久久精品国产2020、久久综合久久自在自线精品自、亚洲 | 欧美天堂超碰97| 色婷婷电影网| 密乳AV免费观看| 97免费视频在线| 97超碰精品成| 国产性感骚丝袜在线| 日韩性爱小视频在线观看| 国产精品点击进入在线影院高清| 九七人妻在线| 艾草av| 五月激情天| 国语精品内射在线观看| 免费人成毛片乱码| 欧日韩一二三f区| a人片中文字幕一区二区| 久久久久久中文字幕中文字幕最新| 思思热er精品视频| 国内毛片欧美香蕉精品| 亚洲欧洲日韩中文字幕一区| 蜜屁Av| 二区熟妇韩日| 色色色热| 久草福利在线资源站| 奇米四色网| 极品销魂美女一区二区 | 欧美一二三级精品在线| 花花AV导航| 亚洲脚交| 91精品久久久久久久久久| 高树玛利亚无码流出| 欧美夜夜狠| 91一起操| 国产亚洲禁久一区二区| 17c在线成人免费A片观看| 久久久久9999| 成人国产二区三区在线,男女精品。| 啊嗯嗯啊好大好爽| 日本大香蕉| 亚洲97P| 日韩人妻网站| 一区,二区,三区网站| 久久手机好看网站| 玖玖视频在线资源一区二区三区| 最新日韩黄片| 亚洲黄网在哪免费看| 91成人久久 | 白丝1区2区3区| 美女诱惑爱爱| 中文字幕人妻丝袜| 久久久久久午夜男人的天堂| 日本片日本片祼观看网站在线看中文版网页在线看| 日本免费人成视频播放120秒| GVH-003 母子姦 青木玲-麻豆视频,麻豆视传媒短视频网站入口,麻豆视传媒官网直 | 亚洲AV无码翔田千里网站| 超碰在线免费一区二区三区| 在线色资源| 91男人综合| 老熟乱一区二区三区四区| 久热精品在线| 亚洲激情久久久伊人综合| 免费视频观看60秒| 99rre在线精品99re8| 少妇激情一区二区三区视频| 极品少妇久久久| 97免费视频在线| 欧美色人| 男女做爰猛烈动高潮A片免费应用| 亚洲婷婷丁香在线| 无码高清操逼| 成人小说视频在线精品欧美| 欧美日产国产在线成人第一区| 国产一区二区a毛片| 久久6热视频免费观看| 精品久久久亚洲AV成人网站|