微信公眾號開發 —— 微信網頁授權小記

廣州蘆葦科技web前端發表於2018-12-19

微信授權

簡要流程

進入(首頁)頁面 ->
請求資料 ->
401,需要使用者資訊 ->
前端發起 微信授權 ->
使用者確定授權 ->
微信重定向到回撥地址 ->
獲取code,通過code換取網頁授權access_token,生成token ->
跳轉至剛剛的頁面 ,並把token傳送給前端 ->
前端專門整個頁面來接收token(儘量不要讓使用者明顯地看到token吧),再重定向到使用者一開始進入的頁面

微信公眾號開發 —— 微信網頁授權小記

…很複雜對吧…還是忽略上面一段話吧

微信授權流程

嗯,這可是我花了一晚上時間畫的,可以抱怨內容不全,但繪圖風格請儘量認可否則你只能看上面一段文字,好好想想吧

微信公眾號開發 —— 微信網頁授權小記

微信授權地址的解釋與說明

微信授權URL的真面目

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

state:http://xxxx.xxxx.com/#/wechatLogin

redirect_uri 微信規定需要encode處理

state 是因為使用了Hash路由,有#,與‘#wechat_redirect’衝突,所以需要encode處理

所以不管怎樣,redirect_uri與state 都經過encodeURIComponent處理吧,準沒錯

微信公眾號開發 —— 微信網頁授權小記

風流版

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複製程式碼
微信公眾號開發 —— 微信網頁授權小記

擱在微信瀏覽器上一看,長相其實還行

配置項

  1. 設定微信授權回撥域名
微信公眾號開發 —— 微信網頁授權小記
  1. 繫結為該公眾號的開發者
微信公眾號開發 —— 微信網頁授權小記

只要你是該公眾號的管理員或者運營者,你就有權利去新增/刪除該公眾號的開發者。但是!!!要想成為開發者,並不是那麼簡單的!!!

enter description here

首先要能被人家用微訊號搜尋到然後要關注該公眾號還有關注什麼微信開發者中心…等等噼裡啪啦的一堆東西

不過你是個正常人,跟著微信提示走,就OK的啦~

enter description here

工具:微信開發者工具

作者簡介:李堯暉,蘆葦科技web前端開發工程師,代表作品:飛花亭小程式、續航基因、YY表情紅包、YY疊方塊直播競賽小遊戲。擅長網站建設、公眾號開發、微信小程式開發、小遊戲、公眾號開發,專注於前端框架、服務端渲染、SEO技術、互動設計、影像繪製、資料分析等研究。

歡迎和我們一起並肩作戰: web@talkmoney.cn

訪問 www.talkmoney.cn 瞭解更多

來源:https://juejin.im/post/5c1a248be51d454be862fe1f#comment

相關文章