1. 程式人生 > >第三方登入微信授權

第三方登入微信授權

工作中遇到了微信授權,記錄一下做個筆記,省了以後忘了

[微信公眾平臺|開發文件] http://mp.weixin.qq.com/wiki/home/

首先,啥時候會用到微信授權

  使用者想在微信上訪問第三方網頁,需要微信授權。授權之後可以獲取到使用者資訊

  微信授權分為兩種:snsapi_base(使用者無感知的,可以叫靜默授權)和snsapi_userinfo(需要使用者手動同意的授權,不知道別名叫爪子)

其次,微信授權的流程 

      1 第一步:使用者同意授權,獲取code

      

2 第二步:通過code換取網頁授權access_token

      3 第三步:重新整理access_token(如果需要)

      4 第四步:拉取使用者資訊(需scope為 snsapi_userinfo)

      5 附:檢驗授權憑證(access_token)是否有效

引導使用者開啟下面的連結,以便使用者同意授權,獲取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,調後臺的提供介面獲得使用者資訊。

可能不同的專案不同的公司做法實現的方法會不一樣,以上是我這次所學到的東西,做一下記錄,也給各位做一個參考,有不對的地方歡迎指正。