微信OPENID授权方法
今天搞了下微信授權(quán), 總結(jié)了下微信的授權(quán)規(guī)則與步驟
?
先來幾個(gè)關(guān)鍵字
Openid ?微信ip(屬于唯一指向公眾號(hào)的id)
redirect_uri??授權(quán)回調(diào)地址
State?回調(diào)地址帶參數(shù)
Appid??公眾號(hào)的唯一標(biāo)識(shí)
access_token?授權(quán)憑證
Code 填寫第一步獲取的code參數(shù)
微信授權(quán)有分兩種授權(quán)
明性授權(quán)snsapi_userinfo??(拉取用戶信息)
隱性授權(quán)?snsapi_base?(只拉取微信openid)
?
OK,這些是玩授權(quán)的幾個(gè)重要的參數(shù).下面看下步驟如何實(shí)現(xiàn)
第一步: 用戶同意授權(quán),獲取code
https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect
上面有幾個(gè)參數(shù), 需要解釋下,
大寫的參數(shù), 是要你們?nèi)ヌ顚懙?/p>
APPID : 公眾號(hào)里面的appid 在開發(fā)者工具那里能看到
REDIRECT_URL: 回調(diào)地址 ( 授權(quán)之后該訪問哪個(gè)地址)
STATE : 參數(shù), 通過域名方式傳過來的參數(shù), 可接受
SCOPE: 授權(quán)方式( 明性授權(quán)和隱形授權(quán))
?
這個(gè)完成了之后 他會(huì)跳到你的”回調(diào)地址”并返回 code值 ?和state值. ( )
?
這時(shí)候 要執(zhí)行第二個(gè)步驟: ?(通過code獲取aesccos_token和openid)
獲取code后,請(qǐng)求以下鏈接獲取access_token: https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code
地址如上, 依然要把參數(shù)貼上。
但是要記得把CODE貼上去
?
通過這一步能獲取到asccos_token
!!!這時(shí)候會(huì)要注意一個(gè)規(guī)則
access_token 一天只能訪問2000次. ?過了2000次之后會(huì)有報(bào)錯(cuò)40001.要到第二天早上才能重新的刷新.
不過這個(gè)可以用一個(gè)緩存access_token的方法來使用, 因?yàn)閍ccess_token方法的緩存時(shí)間是7200秒 ?
這時(shí)候我們可以把他緩存在mysql或者nosql中, 用于在下次緩存的時(shí)候直接調(diào)用access_token, 這樣就能緩解當(dāng)天2000次調(diào)用的規(guī)則.
使用方法如下:
獲取第二步的refresh_token后,請(qǐng)求以下鏈接獲取access_token: https://api.weixin.qq.com/sns/oauth2/refresh_token?appid=APPID&grant_type=refresh_token&refresh_token=REFRESH_TOKEN
通過REFRESH_TOKEN 來獲取一個(gè)長(zhǎng)期能使用的access_token,然后緩存在數(shù)據(jù)庫(kù)里面,用于下次調(diào)用,
因?yàn)橹挥?200秒, 他會(huì)有無效,報(bào)錯(cuò)是40003. 這時(shí)候我們可以用通過一個(gè)檢測(cè)方法來判斷這個(gè)40003報(bào)錯(cuò), 然后進(jìn)行下一次的ACCESS_TOKEN進(jìn)行下次緩存
http:GET(請(qǐng)使用https協(xié)議)https://api.weixin.qq.com/sns/auth?access_token=ACCESS_TOKEN&openid=OPENID
通過OPENID + ACCESS_TOKEN 來驗(yàn)證?
?
轉(zhuǎn)載于:https://www.cnblogs.com/GZ-ppd/p/5667682.html
總結(jié)
以上是生活随笔為你收集整理的微信OPENID授权方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 服务器端输入验证
- 下一篇: MySQL 5.6.26 通过frm