網(wǎng)頁微信第三方登錄-redirect_uri參數(shù)錯誤

redirect_uri參數(shù)錯誤

這幾天在折騰微信第三方登錄的事情。期間一直報redirect_uri 參數(shù)錯誤,搜索了各種文章,試了urlencode等各種辦法,都沒有解決。最后在同事的幫忙下,才搞定。路程曲折,這里記錄一下,也好讓大家不要走這些坑。

【第一步】:在微信開放平臺注冊開發(fā)者賬號并申請網(wǎng)頁應(yīng)用。

微信開放平臺

授權(quán)回調(diào)域

【敲黑板重點來了】授權(quán)回調(diào)域一定要寫網(wǎng)站的域名。不要加https:// http://這些前綴。如:www.sciparty.com

【第二步】:按照網(wǎng)站應(yīng)用微信登錄開發(fā)指南拼接網(wǎng)站的鏈接地址。如果顯示二維碼則調(diào)用成功。

第三方使用網(wǎng)站應(yīng)用授權(quán)登錄前請注意已獲取相應(yīng)網(wǎng)頁授權(quán)作用域(scope=snsapi_login),則可以通過在PC端打開以下鏈接:https://open.weixin.qq.com/connect/qrconnect?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect
若提示“該鏈接無法訪問”,請檢查參數(shù)是否填寫錯誤,如redirect_uri的域名與審核時填寫的授權(quán)域名不一致或scope不為snsapi_login。
參數(shù)說明

參數(shù) 是否必須 說明
appid 應(yīng)用唯一標識
redirect_uri 請使用urlEncode對鏈接進行處理
response_type 填code
scope 應(yīng)用授權(quán)作用域,擁有多個作用域用逗號(,)分隔,網(wǎng)頁應(yīng)用目前僅填寫snsapi_login即可
state 用于保持請求和回調(diào)的狀態(tài),授權(quán)請求后原樣帶回給第三方。該參數(shù)可用于防止csrf攻擊(跨站請求偽造攻擊),建議第三方帶上該參數(shù),可設(shè)置為簡單的隨機數(shù)加session進行校驗

返回說明
用戶允許授權(quán)后,將會重定向到redirect_uri的網(wǎng)址上,并且?guī)蟘ode和state參數(shù)。


【敲黑板重點來了】這里的redirect_uri可以是你網(wǎng)站下的任何頁面(不局限于授權(quán)回調(diào)域配置的域名),但是一定要在前面加上http://,并且使用urlencode編碼。如:http://www.sciparty.com/weixinlogin。例如下面的鏈接地址:
https://open.weixin.qq.com/connect/qrconnect?appid=wxf43a4fc291843e43&redirect_uri=http%3a%2f%2fwww.sciparty.com%2fweixinlogin&response_type=code&scope=snsapi_login#wechat_redirect


總結(jié):一定要注意前面的兩次敲黑板。不要因為配置問題浪費時間。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容