1.認證的微信開發者帳號一隻
html
2.審覈經過的網站應用一個api
3.受權域名可用微信
網站應用微信登陸是基於OAuth2.0協議標準構建的微信OAuth2.0受權登陸系統。受權流程以下:微信開發
1.第三方發起微信受權登陸請求,微信用戶容許受權第三方應用後,微信會拉起應用或重定向到第三方網站,而且帶上受權臨時票據code參數;ide
2.經過code參數加上AppID和AppSecret等,經過API換取access_token;測試
3.經過access_token進行接口調用,獲取用戶基本數據資源或幫助用戶實現基本操做。網站
流程圖:
爲了知足網站定製化的需求,微信提供了兩種方式:ui
其中各個參數,微信開放平臺裏面有很詳細的解釋,這裏注意的一點是回調地址必須是在回調域名內,而且urlencode以後才能夠正確使用,成功後會攜帶state和code參數跳到回調頁面。url
①在頁面中引入js文件spa
<script src="http://res.wx.qq.com/connect/zh_CN/htmledition/js/wxLogin.js"></script>
②在須要登陸的頁面實例化登陸對象
這裏的回調地址與第一種方式同樣,必須是urlencode以後的受權域名下的地址,這裏的二維碼顯示能夠本身設置樣式,只要容器的id是你在實例化的時候設置的就行了
(我的測試,比較醜)
在上一步咱們拿到code以後,就能夠經過code來獲取這個應用的access_token了。
access_token的有效期是7200秒,當這個token超時後,咱們可使用refresh_token來進行刷新獲取新的access_token。refresh_token擁有較長的有效期(30天),當refresh_token失效的後,須要用戶從新受權。
請求連接以下:
返回結果:
在咱們獲取到access_token的同時,咱們同時也獲取到了用戶的openid和unionid。這個openid和uniond是對於微信開發平臺網站應用的openid,不是對於公衆號的openid,與公衆號毫無關聯。union則是多個微信網站應用之間的關聯。
在咱們獲取到access_token以後就能夠根據不一樣的scope權限調用接口了,scope權限區分以下:
你們能夠在構造受權的時候自行根據須要填寫受權,這裏並無寫咱們構造受權連接是填寫的「snsapi_login」,可是我我的測試發現能夠獲取access_token以及獲取我的信息,這個"snsapi_login"應該是包含了上述兩種scope的。
主要能調用的幾個接口以下:
①獲取access_token
②刷新(續期)access_token
③獲取用戶我的信息(unionid機制)
這是獲取用戶我的信息的接口調用方式,access_token和openid都是來自用code換取access_token以後獲得的數據,返回結果以下
微信網站應用微信登陸開發指南:https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1419316505&token=&lang=zh_CN
微信網站應用受權後接口調用:https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1419316518&token=&lang=zh_CN
本文分享自微信公衆號 - 業餘草(yyucao)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。