色五月色开心色婷婷色丁香,五月婷婷丁香花综合网,婷婷丁香五月激情综合在线,五月婷婷六月丁香动漫,婷婷丁香五月激情综合在线,丁香花中文字幕在线观看,播五月色五月开心五月网,开心激情综合网,狠狠色丁香婷婷综合最新地址,丁香视频在线观看,狠狠做六月爱婷婷综合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
返回資訊列表
91在线限制级| 亚洲 自拍偷拍 欧美| 日本精品一级二级三级| 又摸又舔在线观看网站| 思思热国产高清| 92人人操人人| 97一区二区三区视频| 少妇久久久久| 久久亚洲影院一区二区| 欧色网址| 成人情色一区二区| 精品人妻一区二区免费蜜桃视频| 久久99网站| 久久久9 9 9精品| 亚洲国产精品成人综合| 久久久久久久久久久久久久久久9| 97精品免费视频网站| 操操逼操操逼操操逼逼| 久久久久久久久久久久久久9999| 91白虎| 女同女同恋久久级三级| 久久久久中出| 中国农村熟妇毛片视频| 丝袜无码a片| 老熟女乱伦片| 嗯嗯嗯,草死我| 欧美18 在线观看| 9/A片 | 亚欧高清在线| 国产熟码AV| aaaa少妇高潮大片| 综合网亚洲1| 黄色在线网站| 欧美精品,四区。五区| av片在线观看免费播放| 少妇久久久久久| 99re这里只有精品中心播放 | 九九久久久九九| 襙一襙| 欧美熟妇乱码在线一区| 欧美大香蕉久| 九九九九一级| 亚洲高清无码免费观看视频| 偷窥自拍亚洲| 中文字幕艹艹| 浪人综合网| 天美传媒精品一区二区三区| 99在线免费视频| 欧美狠狠| 超碰视97中文| 啊啊啊不要好疼视频| 婷婷色香伊人| 国产乱弄免费在线视频。| 最好看的中文字幕在线2018| 婷婷五月天色网| 夜夜嗨AV蜜臀av| 国产无马在线| 久久精品人妻一区二区三区| 精品久久久久,69国产成人精| 蜜臀一区二区三区在线 | 熟女探花啪啪| 精品久| 亭亭丁香激情| renqi久久久久久久久久久久| 极品销魂美女一区二区| 经典丝袜一区| 久久草视频污视频| 高潮内射在线| 九九九九九九精品| 男人把坤坤插入女人的下体| 超碰伊人在线| 久久成年精品| 台湾大香蕉99热| 亚洲色婷婷久久91| 国产av波波国产精品| 一本久久久精品| 伊人久久国产免费观看视频| 丝袜美腿制服人妻二区中文字幕| 91丝袜在线观看| 国产精品国产| 五月天久久婷婷亚洲 | 欧美少妇性乱| 啊啊啊啊嗯嗯嗯用力好爽 | 久久精品91| 久久午夜伦| 91小视频| 亚洲操逼视频网站| 蜜臀久久99精品久久久| 98超碰欧美| 欧美亚洲涩涩| www.高清无码诱惑一区.com | 在线毛片片免费观看| 国产妇女精品视频青青草| 色色五月婷| 26uuu性物| 搡老熟女免费视频 | 女人高潮抽搐喷水视频网站| 这里只有精品视频在线观看麻豆| 操一操摸一摸| 成人国产视频在线观看| 亚洲精品熟妇1区2区3区。| 人妻熟女一区二区| 欧美在线色| 一区久久久二区| 日韩精品一二三四| 99热自拍| 欧美性天天影视| 久久97| 国产精品亚洲高清在线| 伊人黄色片| 日韩啊V| 久久成人午夜狠狠| 日日碰视频网| 欧美日本不卡| 中文字幕在线免费观看 | 亚洲色图久久成人| 日韩精品三区四区| 神马视频久久久久久| 一级黄色牲爱A级片| 日韩欧美中文日韩欧美色| 九色精品视频导航1| 日本一区二区三区免费观看| 精品国产91内射久久| 校园春色亚洲| 日本高清一区二区在线| 91狠狠综合久久久久久| 北京专精特新企业招聘信息| 国产精品熟女九九九| 大香网伊人久久综合网eew| 激情五月婷婷| 一区中文字幕二区日韩| 北京美女一区二区| 亚洲色婷婷综合久久一区二区三区| 久久久久96| 日韩人人精品| 性色AV网站| 亚洲国产剧情少妇激情| 天美国产三级传媒| 久热精品色情| 中出后入| 新91视频.cmp| 午夜国产乱伦视频| 操逼网免费无码视频| 国产 三级自拍| 欧美综合区| 狠狠干综合| 九九99久久| 亚洲色图91欧美日韩| 青青草日逼视频| 亚洲宗合网| 日韩BBN| 午夜福利 成人 91| 狠狠中文字幕| 91chinese在线| 99re8超碰| 天操天操夜操夜月操月年年操操| 男人天堂电影院| 91人妻在线视频| 亚洲婷婷综合网| 思思久热在线精品66| 内射小黄片| 中文字幕av亚洲在线| 超碰亚洲欧美日韩无| 九九拍拍精品视频在线播放 | 五月天婷婷小说| 欧洲中文字幕| 丰满人妻一区二区三区免费| 爽极品影院| 国产美女裸体秘 永久无遮挡| 国产粉嫩出水在线播放| 大香蕉综合久久| 亚洲性天堂| 人人做天天爱| 五月天伊人| 裸模AV女优| 丰满欧美放荡少妇在线| 人人看人人插| 天天日老熟妇| 超碰在线在公开超碰在线在公开| 欧美日韩性爱操大逼| 青青11操操操操操操操操| 东北女人操比视频| 一区二区三区亚洲| 好爽,再快点啊哈嗯嗯嗯嗯| 亚洲图片 激情小说| 中国少妇啪啪视频| 色牛牛AV| 国产成人无码啪| 亚洲人精| 玖玖综合网| 欧亚性爱视频免费看| 日韩紧密久久| 精品无码秘 人妻一区二区| 亚洲欧美激情在线视频| 欧美日韩亚洲电影| 园内精品自拍视频在线播放| 亚洲AV免费在线观看| 青青五月天| 国产日韩在线播放| 嗯嗯啊啊的视频| 女性91网站| 国产版a级片直播在线| 日韩精品9999| 自拍偷拍 日韩无码| 一区二区 日韩 欧美 国产 传媒| 操操操五月天婷婷丁香影院| 欧亚乱色熟一区二区三四区| 97超碰站| 久久精品免视看国产成人﹣蜜臀av一区. 久久精品免视看国产成人,蜜臀av一区 | 国产精品无码AV网站| 亚洲限制级| 国产三级在线现体验区| 亚洲激情色片| 亚洲免费在线探花| 久久精品男人的天堂| 日韩美女操b| 97伪v| 97在线精品观看视频| 九九热免费在线国产视频伊人五月| 超碰91在线| 99久久这里只有精品| 亚洲丝袜综合| 成年男人的天堂| 无码137片内射在线影院| 国产人伦精品一区二区三区| 久操网视频| 亚洲国内精品成人不卡| 久久久久久久国产视频| 天天干夜夜鈤| 超踫中文字幕| 88xx成人精品视频| 传媒免费一区二区三区| 国语精品内射在线观看| 欧洲综合色图| 高潮嗯啊性感美女久久久| 操B视频日韩无码| 东京热精品97综合网| 日韩av在线精品观看| 麻豆AV短剧| 蜜乳Av成人片网站| 欧美经典一区二区三区 | 激情五月天插| 肥佬影院91| 国产AV超爽| 美女91AV| AV天黑人| 久久久久密| 欧美aa一级片| 无人区高清电影免费观看一区二区三 www.qmcai2.com | 欧亚乱色熟一区二区三四区| 91人妻精华帖| 变态综合色| 日韩少妇丰满亚洲| 你懂得91| 日韩欧美大片免费高清啪啪| 欧美综合自拍亚洲综合图| 婷婷精品| 免费的很黄很污的全部视频| 久久久97| 天天日天天干天天摸天天操| 欧美熟妇乱码在线一区| 日韩在线观看字幕精品| 91亚洲网| 97人妻人人躁人人玩人人| 五月天综合网| JIZZJIZZ国产精品喷水| 2024黄色视频| 天天综合网在线91| 五毛骚逼极品美女怕怕| 色性荡荡荡荡视频| 温婉少妇玩3p| 国产毛片在线| a片久久久久久久久久久久| 国产av色网| 97天天综合网| 欧美精品在线观看| 天天摸,夜夜摸| 双插性欧美一二三区| 日韩在线电影| 亚洲影视高清第一页| 九九成人视频| www欧美性爱| 成人一级性爱| 不卡中文字幕aⅴ在线| 熟妇人妻一二三区免费| 精品妇女一区二区三区| 亚洲五月丁香花狠狠干一区二区三区| 欧美视频一区二区在线| 免费av高清无码| 久久久久99999| 欧美日本视频一区| 97免费视频在线观看视频| 国产有码一区| 国产性刺激| 色欧美天天| 婷婷久草| 国产亚洲色婷婷99精品91| 色色色综合网| 人人色97| 337p大胆噜噜噜噜噜91Av| 在线免费观看日韩一区| 成人小说视频在线精品欧美| 少妇高潮流水av免费| 东京热一区二区中文字幕| 区自美91| 揉揉揉夜夜| 啊啊啊慢点| 久久久涩| 91欧美大片| 无码人妻1727| 国产精品69久久久久久久| 超碰综合色| 亚洲的天堂网| 日韩人妻精品| 日韩精品作爱导航| 欧美九一精品久久久熟妇| 综合激情一一91| 色偷综合| 亚州精品人妻一二三区| 熟女精品日韩一区二区三区| 乱性AV| 少妇第一页| 碰超人人在线一区二区三区| 天天热精品| 天天干夜夜| 久草这里只有精品| 久草精品国产99| 国产操逼视频在线观看| 久久久久久AⅤ无码免费肉站| 黄片免费视频2019| 久久久久久国产手机AV| 五月婷婷六月天| 午夜免费福利视频一区| 亚洲天堂区| 嗯嗯啊啊用力视频免费| 欧美韩国你懂得在线 | 亚洲脚交| 日日夜夜精品视频| 国内亚洲精彩视频在线| 国产成人自拍视频在线| 丰满翘臀美女影院视频| 手机av亚洲丝袜美腿日韩第一页二页| 中文字幕日韩情色| 精品人妻一区二区三区日产| 操逼逼中文字幕| 曰韩av中文字幕专区| 国产欧美日韩在线观看麻豆传媒公司| 97这里只精品| 久久在肏| 黄色免费网页无码| 高潮内射在线| 性欧美| 色综合1991| 四虎免费在线观看| 日韩中文字幕人妻视频| 亚洲18禁| 欧美在线综合| 日本性感人妻91| 草莓精品视频| 97久久超碰国产网站| 欧美日韩97在线| 九九热在线精品视频| 欧美高清91| 亚洲五区熟女| 校园春色 亚洲| 一区二区三区亚洲| 亚欧精品久久久久久久久久久| 中文字幕视频2区| 熟女露脸激情自拍视频| 欧美综合网| 亚洲最大AV网| 吉川爱美亚洲二区在线| 蜜臀一区二区三区在线| 色五月婷婷色| 日产中文字幕2020| 亚洲精品久久久久毛片A片拉屎| 亚洲av淫乱| 又黄又粗又硬又长又大| 人人妻人人玩人人澡人人爽| 国产精品无码在线| 精品久久青青草| 97色欧洲| 国产AV激情无码久久无码| 亚洲天堂女优在线| 久久久日本电影| 99操视频| 欧美色色人| 人妻干天天| 九九热免费国产视频婷婷伊人| 精品综合久久久久久97| 久久99午夜精品一区人妻| 九一亚洲国产免费| 久久久亚洲| 99性爱| 欧洲自拍第一页| 亚洲97久久精品亚洲| 日日干夜夜操视频h| 国产欧美另类久久久精品课程| 亚洲色图殴美色图激情乱伦| 少妇精品久久久| 欧亚性爱在线视频| 都市激情人妻一区二区青青操视频 | 婷婷伊人一区| 婷婷色综合欧美日韩| 丁香五月天激情综合| 97精品一区| 欧美亚洲日本视频久久久| 青青欧美| 婷婷五月天激情网| 69一区二区三区| 大香蕉伊利av| 亚洲成人激情小说视频| 乱码熟妇人妻久久久| 激情天天视频| 久草精品视频| 亚洲av影院在线观看| 玖日综合网| 看一级特黄a大一片| 老熟女熟妇| 在线免费观看日韩一区| 天天天做天天天爱天天天爽| 激情视频网址| 亚洲色图 欧美| 丰满少妇一区二区三区专区| 日韩人妻一区二区| 97青青操视频| 亚洲国产ⅴ高清在线观看| 大香蕉一人在线| 欧美视频一区二区在线| 色逼综合| 亚洲天堂人人妻| 日韩欧美字幕亚洲一区二区| 大香蕉淫人网| 夜夜中出国产| 熟女乱伦A| 亚洲欧美内射| 亚洲欧美激情在线视频| 中文字幕在线免费观看2| av麻豆啪啪| 制服乱伦| 亚洲视频1区| 一摸二插三插| 国产乱伦性爱AV| 欧美日韩在线小说 | 久艹日日日| 午夜精品久久久99| 爱我干综合| 久久天堂网| 欧美日韩夜夜| 国产日本久久免费精品| 久艾草在线精品视频在线观看| 日本三级韩国三级99| 国产视频一区二区三区在线免费观看| 97精品视频在线| 久久9亚洲| 美国一区二区三区视频| 亚洲精品少妇| 精吧天堂| 国产亚洲人妻综合日韩 久久| 国产成人99久久亚洲综合| 伊人午夜福利视频| 国产成人AV麻豆| 久久久国产亚洲精品系列| 性综合网| 亚洲色交| 大香蕉在线SuP| 插入综合网| 最新日韩黄片| 亚洲国产欧美一区二区潘金莲| 婷婷精品国产欧美精品亚洲人人爽| 天天透伊人| 亚洲精品美女久久久久久久久| 天天看精品动漫视频一区| 日韩欧美蜜桃精品久久中文字幕久久| 九久9热| 日本高清一区二区在线| 午夜性| 国产97色在线 | 亚洲| 亚洲午夜免费狠狠干| 日韩人妻播放| 岛国激情视频在线观看| 国产精品点击进入在线影院高清| 97资源亚洲| 久久风骚城市| 十八禁电影伊人网| 九九九草| 国产25页| 欧美国产有色电影| 丁香婷婷激情五月天无毒不卡 | 成人资源中文字幕在线观看天天| 人人考人人摸人人干| 精品国产av一区二区三区四区入口| 精品美女少妇一区二区| 久久久久久久久女黄| 嗯,啊。舔我逼| 人人超碰在线观看黄| 亚洲中文人妻色| 高清不卡一二三区视频......| 天天操夜夜操狠很操| 色欧美亚洲| 99这里都是精品| 日日干夜夜骑| 日本亚欧爱爱| 啊啊啊慢点| 亚洲有码视频二区| 新亚洲无码| 84YTCOM性无码| 一级性爱视频免费观看 | 少妇99| 九热超碰| 亚洲Av诱惑| 蜜臀99久| 不卡中文字幕aⅴ在线| 国产辣妈在线视频福利| 老子午夜伦不卡影院| 欧美综合网| 亚洲欧美一区二区网址| 91视频在线观看18| 丁香五六月啪啪| 吖在线不卡一区二区国产剧情| 黑人美精品 A片| 国产aⅴ无码片毛片一级网站| 丰满美女一级毛片在线播放| 国产精品成久久久久午夜午夜| 最新亚洲人成网站在线影院| 中国女人内射6XXXXX| 日欧操屄视频| 人妻精品综合中文字幕在线 | 一级性爱视频免费观看| 久久久久久国产精品免费网站| 国产成人bd在线观看| 97人人草| 91欧美偷拍| 亚拍在线| 97人人色| 亚洲无码超碰免费| 欧美强奸一区二区诱惑| 久久草草欧美精品| 狠综合网| 好爽视频在线观看| 成人av影院在线观看| 色黄污美女啪啪啪免费网站| 久久‘黄片视频| 亚洲av无码成人精品国产| 综合国产97| 秋霞福利网| 免费试看60秒| 日韩激情中文字幕有码| 天天摸夜夜摸| 夜夜春夜夜操| 操逼天美3区| 色色色热| 亚洲综合色在线| a'v在线资源| 国产精选三级在线观看| 色999人与兽| 二三四区精品| 3PAV乱伦视频| 色色色欧美| 亚洲天堂美臀在线| 国产高清午夜成人在线观看| 亚洲激情综合| 羞答答AV中文字| 被男人吃奶很爽的毛片| 夂久色| ...日韩成人一区二区三区字幕| 中文字幕一区二区视频在线观看 | 欧美激情视频一区二区| 黄色小视频日本txt| 91精品国产综合久久久蜜臀| 欧美日韩人妻精品系列一区二区三区| 1人人看人人摸人人操| 日本一级二级三级网站| 四季AV一区二区凹凸精品小说| 九九热精品| 天天躁日日躁AAA片李宗瑞| 久久久久久久久久久久久久久乱码| 亚洲欧美综合网| 老子午夜伦不卡影院| 69精品少妇一区二区三区蜜桃| 国产精品大屁股999| 三级AV入口| 亚洲熟妇无码一区二区三区| 97色碰| 91 在线亚洲| 精品无码少妇| 欧美性爱五月天| 4141514逼喷水三级片| 99re黄| 久碰视频| 在线小视频| 人妻少妇被猛烈进入中| 欧美视频激情久久久久久| 亚洲 欧美 精品专区 极品| 九色97| 超碰97COm中文| 99亚洲精品| 欧美色道啊| 国产精品无码论坛| 精品二区三四区五电影 | 后入日本1234| 日日操丁香五月天| 密臀在线免费观看| 青青操网| 91激情网| 亚洲欧综合另类无码一区| 久久精品中文| 人人干人人搞人人摸| 伊人色综合网| av三级电影在线播放| 中文字幕视频2区| 超碰九7免费| 97精品国产97久久久久久免费| 欧美天天| 女人的天堂大香蕉网| 国产三级多多影院2022国产AA一级毛片无码 | 欧美激情黑人| 日韩性爱再线视频| 日本韩国五十路六十路七十路老熟女作爱视频网站 | 中文字幕aⅴ在线视频| 亚洲精品久久一区二区三区蜜桃臀| 最新中文字幕精品在线| 久久久久幕乱码| 亚洲 日韩 欧美 国产综合体| 亚洲国产精品久久AV| 国产美女91视频| 午夜影美女日鸡鸡天天视频国产| 日韩精品亚洲一二三| 99精品在线| 人妻9117c| 国产吹潮女在线观看| 99热婷婷| 国产一区二区三区白丝| 啊啊啊97视频| 欧美 亚洲 偷拍自拍| 高潮精品| 超碰 国产熟女精品一区| 亚洲AV免费在线| 国产91会所女技师在线观看| 欧美淫乱视频| 日韩伦理视频| 日韩精品亚洲专区在线影视| a级免费在线观看| 欧美亚州色的图| 一色网男人的天堂| 亚洲 国产 精品一区| 亚洲色宗合| 色臀aV| xxx亚洲午夜天堂| 亚洲色欲天天人妻无码系列专区| 性天堂| 夜夜嗷嗷一区二区| 操逼操操操91| 日本性爰一道本| 国产传媒日韩| 中文字幕色AV| 亚洲欧洲无码97久久精品| 色色色综合网| 久久精品国产亚洲AV高级北京| 久久精品久| 91爰爱欧美| 美女诱惑1区2区| 欧美亚洲日本激情在线| 日小BB小视频| 狠狠操,使劲操| 欧美性夜| 久久九九97| 国产精品午夜福利视频| 五月婷婷hd| 欧美性区| 欧美天天综| 超碰 另类 欧美| 中出91视频| 男人成人黄色视频在线观看免费下载| 五月天久久婷婷亚洲| 亚洲色吧网| 色噜噜婷婷| www.99在线| 日韩欧美经典在线观看| 国产三级资源在线观看| 日韩成年人性爱视频| av 模特一区了| 日本东京热大香蕉a片| 久久AV无码1区2区3区| 六六久久日韩不卡| 天天插天天干| 天天操综合网| 婷婷五月天激情小说| 亚卅熟女乱色| 中国女人内射6XXXXX| 亚洲自拍天堂| 亚洲国产奇米影视久久| 无码操逼视频一下| 国产久久久久久| 欧美日韩亚洲天堂| 91精品91久久久中77777| 久久伊人东京热| 99热这里都是精品| juliaann欧美丝袜办公室| 夜夜欧美| 亚洲色宗合| 97视频在线| 久久精品无码不卡| 欧美一级二级三级| 男人亚洲天堂| 新亚洲无码| 欧美丰满少妇xx高潮| 日韩美女操b| 97色色婷婷| 岛国成人av在线播放网址| 久久婷婷五月| 97硬碰| 久久九精品| 欧美情色亚洲| 青春草莓视频在线观看网址| 少妇一级婬片免费放一级a性色.| 日韩精品在线观看网站| 久久久婷婷| 国产超碰在线一区| 91精品国产乱码| 97亚洲精品超碰| 美女91| 国产一级高跟丝袜| 久热久| 国产a级精品| 精品二区久久| 熟女乱3伦999| 无码日韩网站| 天美一二三在线观看Av| 久热99999| 亚洲影院无码在线| 日韩欧美经典在线观看| 亚洲国产综合久久久性感熟妇| 秋霞福利网| 97天天操| 久久精品国产亚洲AV片多多| 精品视频久久久久九九九九9999 | 精品人妻一区二区视频| 亚洲无码色| 超碰午夜| 毛片久久| 五月婷婷六月天| 欧美韩国你懂得在线| 亚洲激情视频| 亚洲女毛多水多21P| 91在线美女| 国内精品99999| 国产日韩欧美操逼视频| 91狠婷| 亚春色色| 无码免费在线观看黄色片| 夂久色| 中字一区| 亚洲第一精品在线视频| 高清不卡一二三区视频......| 色偷偷综合91久久噜噜| 国产成人无码啪| AV色天香在线| 亚洲国产97| 九九激情网| 9999久久久久| 99色热国产视频精品| 91AV老熟女视频| 亚洲欧洲激情卡通另类文学四射小说网站 | 97看操| 青草精品视频-日本久久久久网站| 欧美刺激色黄片免费看| 风月影院男女十八禁| 国产主播福利| 五月天色图| 91少妇人妻| 久久乐| 欧美综合第一页| 欧美精品久久久久久久久88| 激情 欧美 亚洲 小说| 91丨九色丨43老版熟女| 91痴汉| 国产精品熟女乱伦| 综合色久欲| 国产一区二区在线电影| 日韩欧美偷拍美女视频| 最新岛国大片| 日韩在线人妻网站| 老子午夜伦不卡影院| 亚洲av热热色| 精品丝袜无码一区二区三APP| 成人熟女视频一区二区三区| 欧美男人天堂| 色鬼在线综合| 欧美十八禁视频| 国产免费久久精品99re韩国| 久久东京伊人一本到鬼色| 久久精品免视看国产成人﹣蜜臀av一区. 久久精品免视看国产成人,蜜臀av一区 | 熟女啪啪视频| 久久超碰国产一区二区三区| 丝袜喷水在线| a片偷拍视频| 99国产精品久久久在线播放| 伊人精品久久网站| 无码人妻系列少妇| 六月色色| 久久精品一区二区| 亚洲天堂第一页| 乱伦图av| 免看60秒涩涩视频| 久久久久久午夜男人的天堂| 蜜臀无码视频在线观看| 色综合加勒比四四季| 在线观看无码三级少妇| A男人的天堂| 丁香色五月 97干| 啊啊啊操死我| 超碰97男人| 久久香蕉国产线看观看猫咪av| 欧美人妻制服| 人妻夜夜爽天天爽麻豆三区网站| 亚洲图片日本AⅤ欧美在线| 999综合色| 日本99视频| 色哟哟AⅤ| 鸥美极品| 日韩乱码Av| 思思热在线cao| 日本久久久久久久久久| 少妇99成人麻豆| 丰满人妻一区二区三区免费 | 懂色Av| 九九九九九用不成了| 欧美劲爆视频一区二区| 日本九九久久99| 国模不卡| 伊人骚琪琪亚洲天堂网站| 亚洲色图20p| 国产精品自拍xxxx| 日本加勒比无码专区| 久操大香蕉超碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰 | 亚洲精品少妇| 亚洲精品白丝| 青青草视频久久| 欧美日韩精品一区二区三区高清| 国产精品久久久久久久久久久久久久吹 | 另类小说综合网| 黄色成年| 日韩一级二级三级免费看完整版国语版 | 青娱乐欧美激情一区二区| 一区二区播放| 久久久久久9999| 丝袜AV一二三区| 这里只有精品视频在线观看麻豆 | 夜夜操天| 三级片网站在线播放| 国产福利视频精品视频| 加勒比av网| 91熟女综合| 超碰久久性爱| 九九综合久久| 国产理论视频在线播放| 超碰精品日韩欧美国产| 青草精品视频一日本久久久久网站| 久久精品国产99国产精品亚洲| 亚洲精品亚洲人成人网| 国产精品久久99日日| 强奸抽插av| 四虎在线视频| 国产精品一区二区麻豆| 99热大香蕉伊在线| 日韩国产十八禁| 亚洲中文字幕有码视频一区二区三区| 天天爽夜夜操| 婷婷丁香五月天亚洲天堂网| 国产精品国产自产高清AV| 绯色一区二区三区不卡少妇| 国产激情在线| 亚洲第一视频 欧美风情 日韩| 伊人991| AV天堂电影网| 日韩精品99999| 欧美疯狂做爰xxxx| 激情网色| 亚洲色图欧美一区二区不卡| 超碰人妻97| 水滴偷拍| 夜夜夜爽www精品视频| 亚洲日韩97| 东京男人天堂| 爱丝福利| 亚洲综合色图欧美| 国产嫩草精品A88AV| 91女优在线观看| 婷婷久草| 天天综合,91入口| 欧美精品亚洲精品日韩传电影| 亚洲怡春院| 久久熟女精品不卡一区| 五月天亚洲网| 2020天天色综合| 精品视频一区二区| 欧美自拍网| 亚州男人天堂| 2021国产成人精品久久| 九九热AV| 国产精品日韩在线一区| 亚洲一区二区三区中文字幕| 蜜乳AV.COM| 日本高清_区二区三区 | 极品白嫩美少妇在地板上位骑射淫水泛滥| 天天cao在线| 91热色| 久热网| 一起草视频在线| 中文字幕久久亚州无码| 乱色老一区二区三区的观看方式| 91中出在线| 欧美黑人168页欧美黑人167| 久久精品操| 97干在线| 91高潮| 国产日韩欧美中文在线播放| 日美免费黄片| 夜色AV无码手机在线影院| www.色婷婷色综合| 狼人综合婷婷激情四射 | 欧美久久久15P| 国产诱惑| 99精品九九九九九九| 国产白丝精品在线观看| 高清国产成人无码| 国产精品香蕉热久久新品| 狠狠综合网| 美女91在线观看| 97干综合网| 日韩97P| 上海一级黄片| 97精品综合久久| 亚洲少妇喷视频看| 丝袜综合| 9九九国产| 亚洲美女AV无码| 国产成人无码啪| 国产成人网址| 搞中出视频在线观看| 欧美精品激情| 亚洲欧洲日本精品中文a∨| 精品区国产区一区二区三区| 99色悠悠| 午夜AV污污污| TS人妖另类精品视频系列| 丰满少妇乱子伦精品无| 大香蕉宗合网在线| 99在线啪| 日韩精品字幕| www.av在线观看| 久久久久久九九九九-美女久久久久久久-成人AV | 在线观看色视频| 久久久亚洲精品电影免费看| 久久久久婷婷精品av电影| 综合色一区三区二区| 久草网站免费在线观看| 韩国轻伦国内自拍一区| 免费精品AB| 精品中文字幕第一页| 久久色人体 | 午夜天堂精品久久| 97chaopengongkai| 日日碰狠狠添天天爽超| GVH-003 母子姦 青木玲-麻豆视频,麻豆视传媒短视频网站入口,麻豆视传媒官网直 | 亚洲欧美黄| 可以在线观看AV的网站| 中文字幕88av在线| 97超碰超碰| 欧美一级A片在线看视频性色| 色婷婷婷五月天激情四射| 97天天摸天天爽| 亚洲一区二区精品福利| 亚洲和欧美裸体美女双飞视频| 啊啊啊在线观看| 99热99在线| 粉嫩久久久极品| 99re公开精品免费视频| 久久久久成人蜜桃精品| 免看60秒涩涩视频| blacked精品一区国产| 台湾大香蕉99热| 亚洲欧美综合| 蜜臀久久久久久999| 亚洲激情在线| 精品毛片久久久精品毛片| 欧洲小说色图视频另类| 91丨九色丨国产丨人妻在线| 91是天天| 日韩特级毛片免费观看全集| 激情四射婷婷四五月天| 亚洲天天更新| www.婷婷六月天| 超碰色图| 首页亚洲国产高跟丝袜诱惑视频| 99re在线视频这里只有精品| 新婚人妻扶着粗大强行坐下| 操老熟女AV| 草草影院最新网址| 亚洲日本天堂| 偷看洗澡一二三区美女| 一区二区三区在线日韩影院观看| 欧美色视频在线| 亚欧美综合网。| 每日更新AV| 亚洲图片在线| 操婷婷逼| 欧美日韩色| 青娱乐久久艹| 欧美色亚洲色| 五月天激情国产综合婷婷婷| 亚洲有码视频二区| 一本一道人妻久久一区二区三区| 中文字幕三四区| 狠狠搞 亚洲91| 日韩强奸av| 亚洲第91页| 男女真人网18| 亚洲精品国产拍免费91在线| 色色婷| 国产1024在线播放| 97视频www| 强歼乱伦资源网| 蜜臀Av一区二区三区| 免费看美国人人爽,人人操| 国产一区二区免费福利片| 玖玖爱一区在线| 久久久久国产精品片区无码直播| 久久久555| 夂久色| 人人做天天爱| 一区二区播放| http://qxhbdz.com| 日本操逼aaaaa| 职场同事知名国产国产精品久久欧美日韩 | 干美女人妻| 女同在线视频一区| 日日插夜夜| 亚洲天堂少妇| 四虎AV无码| 久草福利在线资源站| 午夜精品久久99蜜桃的功能章节| 97精品一二区| 国产一级作爱毛片| 91美女在线观看| 精品久久久久久久久久久久 | 午夜亚洲国产理论秋霞| 欧洲大香蕉| 97超碰美国| 美國A片| 17c嫩草51久久91嫩草| 品亲网欧美品亲网| 伊人成人中文字幕久久网| 亚洲免费成人在线高清无码视频| 久久精品99| 亚洲欧洲小说图片视频| 中文字幕成人理论在线| 在线免费观看高清无码视频| 素颜老阿姨乱情色| 91久久久久久久久久久| japan日本高清乱xxxx| AAAA级日本片免费视频 | 欧美久久草熟女| 日韩欧美国产高清视频| 国产丝袜啪啪| 久噜噜| 国产视频三区四区| 丁香五月综合| 18禁无码永久免费无限制| 高清视频一区| 亚洲综合另类色图| 大香蕉综合久久| 99精品在线| 图片区小说区| 99久久久无码精品国产人| 99在线精品视频| 综合激情一一91| 97干天天| 精品人妻一区二区三区-国产| 精品人妻美妇91job| 在线岛国新天堂8| 中文字幕蜜乳av| 久久久久久久9999| 婷婷情色五月天| 嗯嗯啊操我| 超碰成人免费| 日韩黄色电影网站| 婷婷操视频| 丝袜亚洲综合| 97色综合中文网| 九九热精品视频六| 亚洲综合113页| 亚洲国产精品久久久久婷婷青年| www.婷婷| 五月丁香六月婷| 五十路三级片| 超碰成人公开| 美国精品国产精品| 澳门黄片一香蕉视频| 欧洲综合色图| 一本色道综合久久欧美日韩精品| 九九九不卡| 中文有码9| 欧美亚洲清纯| 久久精品无码熟妇一区二区三区视频导航 | 色婷婷激一区二区三区| 久久久久免费看少妇A片特黄| 操操操五月天婷婷丁香影院| 乱伦日本中文自拍| 91丨人妻丨国产丨丝袜| 日本大香蕉综合网红本杳社区| 青青操视频在线| 久久久久78| 怡红院成人av| 18岁禁 茉莉成人久久| 亚洲激情综合| 加勒比大香蕉视频在线| 天天日少妇逼AV| 97久久久久久久精| 裸体女人草逼视频播放一区,二区,三区,四区,五区 | 九九精品99| 欧亚成人| 一级性爱aaaa| 亚洲AV无码乱码在线观看性色| 99日韩| 日本在线不卡123| 少妇与黑人高潮在线| 天天爽爽爽爽| 一区二区三区日韩欧美 | 少妇二级| 日本女厕偷拍| 97在线欧洲| 啊啊啊啊好疼视频| 香蕉精品二区二区| 亚洲熟妇一,二,三期| 26uuu久久| 亚洲中文国际强奸字幕| 婷婷丁香成人| 亚洲国产一区二区三区在线| 九九综合| 一二三啪啪专区| 色综合20p| 激情在线青青操| 51国产午夜精品视频| αⅴ天堂| 香蕉久久国产AV一区二区| 日本不卡高清免v欧美日韩在线观看| 久久久久久久久久久999| 久久一区二区加油站| 久久在肏| 超碰无码加勒比| 日韩成人综合网| 99色色网| 91最新综合| 中日992视频| 中国AAAAAA黄色片| 成人午夜小视频手机在线看| 国产精品电影| 大香蕉综合久久|