你想學會一項能上天的技能嗎——網站應用
微信登錄的推出,是繼微信支付、微信小店後,微信連接一切能力的又一次升級——它將可以和無數個第三方應用連接,成為它們服務和數據的統一展示平台。
微信終於開始連接它之外的互聯網世界,但更準確的說,連接它之外的商業互聯網世界。
微信登錄功能是什麼?
微信登錄是指移動應用和網站應用,可以通過接入該功能,讓用戶可以通過微信帳號來登錄,降低註冊門檻和用戶流失率。
此外,還會在經過用戶同意後,將用戶基本信息(頭像、昵稱、性別、地區、語言)提供給開發者。
作為開發者,此時、盡情發揮
1.準備工作
在進行微信OAuth2.在進行微信OAuth2.0授權登錄接入之前,在微信開放平台註冊開發者帳號,並擁有一個已審核通過的網站應用,並獲得相應的AppID和AppSecret,申請微信登錄且通過審核後,可開始接入流程。(需要成熟的網站在微信平台進行申請)
2.授權流程說明
1. 第三方發起微信授權登錄請求,微信用戶允許授權第三方應用後,微信會拉起應用或重定向到第三方網站,並且帶上授權臨時票據code參數;
2. 通過code參數加上AppID和AppSecret等,通過API換取access_token;
3. 通過access_token進行介面調用,獲取用戶基本數據資源或幫助用戶實現基本操作。
3.獲取access_token時序圖:
第一步:請求CODE
第三方使用網站應用授權登錄前請注意已獲取相應網頁授權作用域(scope=snsapi_login),則可以通過在PC端打開以下鏈接:
若提示「該鏈接無法訪問」,請檢查參數是否填寫錯誤,如redirect_uri的域名與審核時填寫的授權域名不一致或scope不為snsapi_login。
參數說明
返回說明
用戶允許授權後,將會重定向到redirect_uri的網址上,並且帶上code和state參數
redirect_uri?code=CODE&state=STATE
若用戶禁止授權,則重定向後不會帶上code參數,僅會帶上state參數
redirect_uri?state=STATE
為了滿足網站更定製化的需求,我們還提供了第二種獲取code的方式,支持網站將微信登錄二維碼內嵌到自己頁面中,用戶使用微信掃碼授權後通過JS將code返回給網站。
JS微信登錄主要用途:網站希望用戶在網站內就能完成登錄,無需跳轉到微信域下登錄後再返回,提升微信登錄的流暢性與成功率。 網站內嵌二維碼微信登錄JS實現辦法:
步驟1:在頁面中先引入如下JS文件(支持https):
步驟2:在需要使用微信登錄的地方實例以下JS對象:
id:"login_container",
appid: "",
scope: "",
redirect_uri: "",
state: "",
style: "",
href: ""
});
參數說明
第二步:通過code獲取access_token
通過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",
"openid":"OPENID",
"scope":"SCOPE","unionid": "o6_bmasdasdsad6_2sgVt7hMZOPfL"}
{"errcode":40029,"errmsg":"invalid code"}錯誤返回樣例:
刷新access_token有效期
access_token是調用授權關係介面的調用憑證,由於access_token有效期(目前為2個小時)較短,當access_token超時後,可以使用refresh_token進行刷新,access_token刷新結果有兩種:
1. 若access_token已超時,那麼進行refresh_token會獲取一個新的access_token,新的超時時間;
2. 若access_token未超時,那麼進行refresh_token不會改變access_token,但超時時間會刷新,相當於續期access_token。
refresh_token擁有較長的有效期(30天),當refresh_token失效的後,需要用戶重新授權。
請求方法
獲取第一步的code後,請求以下鏈接進行refresh_token:
https://api.weixin.qq.com/sns/oauth2/refresh_token?appid=APPID&grant_type=refresh_token&refresh_token=REFRESH_TOKEN
參數說明
返回說明
正確的返回:
{
"access_token":"ACCESS_TOKEN",
"expires_in":7200,
"refresh_token":"REFRESH_TOKEN",
"openid":"OPENID",
"scope":"SCOPE"
}
錯誤返回樣例:
{"errcode":40030,"errmsg":"invalid refresh_token"}
第三步:通過access_token調用介面
獲取access_token後,進行介面調用,有以下前提:
1. access_token有效且未超時;
對於介面作用域(scope),能調用的介面有以下:
其中snsapi_base屬於基礎介面,若應用已擁有其它scope許可權,則默認擁有snsapi_base的許可權。使用snsapi_base可以讓移動端網頁授權繞過跳轉授權登錄頁請求用戶授權的動作,直接跳轉第三方網頁帶上授權臨時票據(code),但會使得用戶已授權作用域(scope)僅為snsapi_base,從而導致無法獲取到需要用戶授權才允許獲得的數據和基礎功能。
END
更多精彩技術(MetaShare)
點擊展開全文


TAG:麥特賽爾軟體 |
※科學家發現約會網站是如何工作的,以及是否能找到理想的伴侶
※瀏覽「不良網站」時,如果手機正在發熱,那麼你可能幫黑客賺錢了
※要研究細胞系,基因?你可能會對這個網站愛不釋手哦
※我堅持網站建設,能在網上有所收穫嗎?
※能用網頁就別下載 App!這 6 個功能強大的網站,你一定要知道
※《GTA5》中的手機都能幹什麼?能不能看視頻,或者開網站?
※怎樣在不能直郵中國的網站剁手?
※怎樣才能找到一家靠譜的做定製網站的公司?
※為什麼很多人寧願花錢看場電影也不買視頻網站會員?看完你也會的
※畫不好人體姿勢?可能是你沒有收藏這六個參考網站
※唯品會要轉型 不再是你知道的那個特賣網站了
※這幾個電影網站,你想看的大片都能找到!
※美國智能手機用戶每次訪問零售網站時都會花費更多的錢
※有了這些網站,媽媽再也不擔心我學習沒方向了!
※有了這些免費網站 看電影再不用發愁!
※一個好的威客網站需要具備哪些因素,站長必了解!
※相親網站的演算法真的能為我們找到那個 TA 嗎?
※這個反人類的智障網站,能成功註冊算我輸……
※玩也要玩出名堂來,逛社交網站也要有些收穫,學點穿搭技巧最實用
※快來看呀!吸引人的網站需要這樣製作