golang_微信公衆號網頁授權

UnionID
同一用戶、同一微信平臺下的不同應用unionid相同

靜默授權
1. snsapi_base爲scope的網頁授權
2. 已進入本公衆號的網頁授權頁snsapi_userinfo

網頁授權4步:
1. 用戶同意授權,獲取code
2. 通過code換取網頁授權access_token
3. 刷新access_token(如有需要)
4. scope爲snsapi_userinfo時拉取用戶信息

第一步,引導用戶打開認證的頁面

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

appid 公衆號的唯一標識
redirect_uri 授權後重定向的回調鏈接地址, 請使用 urlEncode 對鏈接進行處理
response_type 返回類型,即code
scope 應用授權作用域,
snsapi_base (不彈出授權頁面,直接跳轉,只能獲取用戶openid),
snsapi_userinfo (彈出授權頁面,可通過openid拿到暱稱、性別、所在地。並且, 即使在未關注的情況下,只要用戶授權,也能獲取其信息 )
state 重定向後會帶上state參數(非必須)
wechat_redirect 無論直接打開還是做頁面302重定向時候,必須帶此參數

如果用戶同意授權,頁面將跳轉至 redirect_uri/?code=CODE&state=STATE(5分鐘未被使用自動過期)

secret 公衆號的appsecret
grant_type 即authorization_code

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

如果scope爲snsapi_token,獲取access_token同時獲取openid。

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

返回數據:

{
“access_token”:“ACCESS_TOKEN”, // 網頁授權接口調用憑證
“expires_in”:7200,
“refresh_token”:“REFRESH_TOKEN”, // 用戶刷新access_token
“openid”:“OPENID”,
“scope”:“SCOPE”
}

第三步:刷新access_token(如果需要)

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

第四步:拉取用戶信息(需scope爲 snsapi_userinfo)

如果scope爲 snsapi_userinfo,通過access_token和openid拉取用戶信息

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

返回數據:

{
“openid”:" OPENID",
“nickname”: NICKNAME,
“sex”:“1”,
“province”:“PROVINCE”,
“city”:“CITY”,
“country”:“COUNTRY”,
“headimgurl”: “http://thirdwx.qlogo.cn/mmopen/g3MonUZtNHkdmzicIlibx6iaFqAc56vxLSUfpb6n5WKSYVY0ChQKkiaJSgQ1dZuTOgvLLrhJbERQQ4eMsv84eavHiaiceqxibJxCfHe/46”,
“privilege”:[ “PRIVILEGE1” “PRIVILEGE2” ],
“unionid”: “o6_bmasdasdsad6_2sgVt7hMZOPfL”}

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

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

相關鏈接:https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_webpage_authorization.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章