微信OPENID授權方法


今天搞了下微信授權, 總結了下微信的授權規則與步驟

 

先來幾個關鍵字

Openid  微信ip(屬於唯一指向公眾號的id)

redirect_uri  授權回調地址

State 回調地址帶參數

Appid  公眾號的唯一標識

access_token 授權憑證

Code 填寫第一步獲取的code參數

微信授權有分兩種授權

明性授權snsapi_userinfo  (拉取用戶信息)

隱性授權 snsapi_base (只拉取微信openid)

 

OK,這些是玩授權的幾個重要的參數.下面看下步驟如何實現

第一步: 用戶同意授權,獲取code

https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect

上面有幾個參數, 需要解釋下,

大寫的參數, 是要你們去填寫的

APPID : 公眾號里面的appid 在開發者工具那里能看到

REDIRECT_URL: 回調地址 ( 授權之后該訪問哪個地址)

STATE : 參數, 通過域名方式傳過來的參數, 可接受

SCOPE: 授權方式( 明性授權和隱形授權)

 

這個完成了之后 他會跳到你的回調地址並返回 code值  和state值. ( )

 

這時候 要執行第二個步驟:  (通過code獲取aesccos_token和openid)

獲取code后,請求以下鏈接獲取access_token: https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code

地址如上, 依然要把參數貼上。

但是要記得把CODE貼上去

 

通過這一步能獲取到asccos_token

!!!這時候會要注意一個規則

access_token 一天只能訪問2000次.  過了2000次之后會有報錯40001.要到第二天早上才能重新的刷新.

不過這個可以用一個緩存access_token的方法來使用, 因為access_token方法的緩存時間是7200秒  

這時候我們可以把他緩存在mysql或者nosql中, 用於在下次緩存的時候直接調用access_token, 這樣就能緩解當天2000次調用的規則.

使用方法如下:

獲取第二步的refresh_token后,請求以下鏈接獲取access_token: https://api.weixin.qq.com/sns/oauth2/refresh_token?appid=APPID&grant_type=refresh_token&refresh_token=REFRESH_TOKEN

通過REFRESH_TOKEN 來獲取一個長期能使用的access_token,然后緩存在數據庫里面,用於下次調用,

因為只有7200秒, 他會有無效,報錯是40003. 這時候我們可以用通過一個檢測方法來判斷這個40003報錯, 然后進行下一次的ACCESS_TOKEN進行下次緩存

http:GET(請使用https協議)https://api.weixin.qq.com/sns/auth?access_token=ACCESS_TOKEN&openid=OPENID

通過OPENID + ACCESS_TOKEN 來驗證 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM