第三方登入微信授權
工作中遇到了微信授權,記錄一下做個筆記,省了以後忘了
[微信公眾平臺|開發文件] http://mp.weixin.qq.com/wiki/home/。
首先,啥時候會用到微信授權
使用者想在微信上訪問第三方網頁,需要微信授權。授權之後可以獲取到使用者資訊
微信授權分為兩種:snsapi_base(使用者無感知的,可以叫靜默授權)和snsapi_userinfo(需要使用者手動同意的授權,不知道別名叫爪子)
其次,微信授權的流程
4 第四步:拉取使用者資訊(需scope為 snsapi_userinfo)
引導使用者開啟下面的連結,以便使用者同意授權,獲取code
scope為snsapi_base
https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx520c15f417810387&redirect_uri=https%3A%2F%2Fchong.qq.com%2Fphp%2Findex.php%3Fd%3D%26c%3DwxAdapter%26m%3DmobileDeal%26showwxpaytitle%3D1%26vb2ctag%3D4_2030_5_1194_60&response_type=code&scope=snsapi_base&state=123#wechat_redirect
scope為snsapi_userinfo
https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxf0e81c3bee622d60&redirect_uri=http%3A%2F%2Fnba.bluewebgame.com%2Foauth_response.php&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect
引數說明
appid | 公眾號的唯一標識(後臺給) | 必填 |
redirect_uri | 授權成功後的回撥地址 (不能是ip) | 必填 |
response_type | 返回型別,請寫code(人家規定的,就寫code) | 必填 |
scope | snsapi_base (靜默授權,不彈出授權頁面,直接跳轉,只能獲取到openid) snsapi_userinfo (彈出授權頁面,通過openid拿到使用者暱稱,性別等使用者資訊) |
必填 |
state | 自定義引數,最多128位元組 | |
#wechat_redirect | 無論幹啥都要帶的引數 | 必填 |
使用者點選後頁面跳轉到redirect_uri?code=code&state=state這個頁面,這個code用來獲取access_token的
值得注意的是,redirect_uri後面的這個地址和微信公眾號上配置的地址要在同一個域名下,不然就會出現redirect_uri引數錯誤的現象,具體的配置路徑,公眾號設定--功能設定--網頁授權域名
在配置這個網頁授權域名的時候需要下載一個檔案,把它放在專案裡就可以啦!
其實第三方登入大部分的工程都是在後臺那裡的,前端需要引導使用者去點選或者進入前面說的授權連結,獲取到code,調後臺的提供介面獲得使用者資訊。
可能不同的專案不同的公司做法實現的方法會不一樣,以上是我這次所學到的東西,做一下記錄,也給各位做一個參考,有不對的地方歡迎指正。