1. 程式人生 > >微信第三方登入(靜默授權和非靜默授權)例項步驟

微信第三方登入(靜默授權和非靜默授權)例項步驟

微信的授權登入在日常應用中應用的非常廣泛,最多就是第三方登入,最近在搞這方面的例子,做個筆記,方便查閱。

微信登入分為兩類:需要使用者確認的授權登入與靜默授權,使用者確認的授權登入因為要通過使用者的個人確認,所以可以獲取使用者全面的資訊,無論是否關注相關微訊號都可以獲取,靜默授權是巢狀在普通網頁中的授權方式,不需要使用者確認,但只能獲取微信使用者的唯一標識openid,但有時候這種互動方式更加的友好,對於使用者的簡單認證還是很有用的。接下來就分別詳細介紹下兩種登入方式的詳細過程,減少沒有必要的踩坑,無論什麼授權,就是要具有網頁授權的基本介面許可權,如下圖所示。

有了許可權以後,點選修改,裡面有一個網頁授權域名選項,填寫你的域名,不需要帶http等協議頭,請認真填寫,例如:www.baidu.com,因為你的授權頁面是要掛在這個域名下的,如果大家測試的話,可以使用花生殼內網對映來發佈網頁,有固定域名提供的。

網頁授權的具體api說明連結地址如下:

https://mp.weixin.qq.com/wiki/17/c0f37d5704f0b64713d5d2c37b468d75.html

授權登入:

1.呼叫微信api獲取使用者授權code,即使用者點選確認登入後返回給頁面的一個值

   

其中Redirect_uri的值為使用者同意授權後的回撥頁面,且該頁面要在授權回撥域名下,並且該網頁的地址要經過url編碼後才能訪問,scope引數為授權模式,這裡填寫snsapi_userinfo,即使用者授權。

2.呼叫微信api根據返回的code換取網頁授權憑證accesstoken

  

其中的appid與secert是微信服務號或訂閱號的基本資訊中內容,返回值是一個json字串,我們只要獲取其中的使用者唯一標識openid與授權憑證accesstoken就夠了。

3.呼叫微信api根據使用者授權憑證獲取使用者的賬號資訊

  

返回的資訊也是json字串,包含使用者暱稱,城市,國家等資訊,當然也一定會包含使用者唯一標識openid

靜默授權:

靜默授權與使用者登入授權有幾點不同

1.第一步獲取code的時候scope的值為snsapi_base

2.第二步獲取到openid之後授權過程至此結束

在這裡提供給大家靜默授權的一個作用,就是可以根據使用者的唯一標識openid來判斷使用者是否關注了本微信公眾號,在獲取了openid之後再進行兩步操作即可

3.呼叫微信api獲取微信的通用憑證accesstoken

微信api說明地址:

https://mp.weixin.qq.com/wiki/11/0e4b294685f817b95cbed85ba5e82b8f.html

  

需要注意的是,這個憑證和使用者授權的憑證不一樣!!!一定要記住!!

4.呼叫微信api獲取使用者基本資訊

微信api說明地址:

https://mp.weixin.qq.com/wiki/14/bb5031008f1494a59c6f71fa0f319c66.html

  

這裡的accesstoken一定要用第三步獲取的,千萬不要用和openid一起獲取的accesstoken,那個憑證僅僅適用於使用者授權登入,在返回資訊中一定回包含一個欄位subscribe,如果使用者關注了,值為1,並可以返回更多的使用者資訊,使用者沒有關注,值為0,沒有更多的資訊

轉載自:http://blog.csdn.net/u013407099/article/details/52870022