進入(首頁)頁面 -> 請求數據 -> 401,須要用戶信息 -> 前端發起 微信受權 -> 用戶肯定受權 -> 微信重定向到回調地址 -> 獲取code,經過code換取網頁受權access_token,生成token -> 跳轉至剛剛的頁面 ,並把token發送給前端 -> 前端專門整個頁面來接收token(儘可能不要讓用戶明顯地看到token吧),再重定向到用戶一開始進入的頁面 html
...很複雜對吧...仍是忽略上面一段話吧 嗯,這但是我花了一夜時間畫的,能夠抱怨內容不全,但繪圖風格請儘可能承認 不然你只能看上面一段文字,好好想一想吧https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URL&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect
複製代碼
微信受權URL,其實就是這麼一串字符串前端
字段 | 是否必填 | 含義 | 說明 |
---|---|---|---|
APPID | 是 | 公衆號惟一的APPID | |
REDIRECT_URL | 是 | 回調地址,須要進行urlEncode處理 | 受權完後微信將會跳到該地址,如無特殊說明,該回調地址是後臺接口,負責接收code,code以?code=123456的參數形式接在回調地址後面 |
STATE | 否 | 重定向後會帶上state參數,開發者能夠填寫a-zA-Z0-9的參數值,最多128字節 | 通常能夠是前端告訴後臺跳轉受權前的頁面地址,讓後臺獲取code以後重定向到該地址,而且在該地址後帶上token數據 |
response_type | 是 | 返回類型,此處填寫code | |
scope | 是 | 應用受權做用域:snsapi_base (不彈出受權頁面,直接跳轉,只能獲取用戶openid),snsapi_userinfo (彈出受權頁面,可經過openid拿到暱稱、性別、所在地。而且,即便在未關注的狀況下,只要用戶受權,也能獲取其信息) | |
#wechat_redirect | 是 | 不管直接打開仍是作頁面302重定向時候,必須帶此參數 |
redirect_uri: http://xxxx.xxxxx.com/api/customer/wechat/authorize
web
state:http://xxxx.xxxx.com/#/wechatLogin
小程序
redirect_uri 微信規定須要encode處理微信小程序
state 是由於使用了Hash路由,有#,與‘#wechat_redirect’衝突,因此須要encode處理api
因此無論怎樣,redirect_uri與state 都通過encodeURIComponent處理吧,準沒錯瀏覽器
風流版bash
https://open.weixin.qq.com/connect/oauth2/authorize
?appid= **xxxxx**
&redirect_uri= **http%3A%2F%2Fxxxx.xxxx.com%2Fapi%2Fcustomer%2Fwechat%2Fauthorize**
&response_type=code
&scope=snsapi_userinfo
&state= **http%3A%2F%2Fxxxx.xxxx.com%2F%23%2FwechatLogin**
#wechat_redirect
複製代碼
正常版前端框架
https://open.weixin.qq.com/connect/oauth2/authorize?appid=xxxx&redirect_uri=http%3A%2F%2Fxxxx.xxxx.com%2Fapi%2Fcustomer%2Fwechat%2Fauthorize&response_type=code&scope=snsapi_userinfo&state=http%3A%2F%2Fxxxx.xxxx.com%2F%23%2FwechatLogin#wechat_redirect
複製代碼
擱在微信瀏覽器上一看,長相其實還行微信
首先要能被人家用微信號搜索到 而後要關注該公衆號 還有關注什麼微信開發者中心 ...等等噼裏啪啦的一堆東西
不過你是個正常人,跟着微信提示走,就OK的啦~
做者簡介:李堯暉,蘆葦科技web前端開發工程師,表明做品:飛花亭小程序、續航基因、YY表情紅包、YY疊方塊直播競賽小遊戲。擅長網站建設、公衆號開發、微信小程序開發、小遊戲、公衆號開發,專一於前端框架、服務端渲染、SEO技術、交互設計、圖像繪製、數據分析等研究。
歡迎和咱們一塊兒並肩做戰: web@talkmoney.cn
訪問 www.talkmoney.cn 瞭解更多