在微信開發中,微信公眾號可以配置自己的頁面,當用戶進入我們的公眾號跳轉進入我們第三方頁面的時候,需要一個用戶標記,也就是微信授權用戶信息給我們,我們可以拿到用戶的 open_id 對用戶進行標記
流程
1 用戶點跳轉頁面(跳轉url在微信開放平台中配置, 如: https://www.baidu.com/index.html)
用戶跳轉的時候是什么都沒有攜帶的,頁面加載完成后會觸發js事件, 這時候 index.html 中js 會有相應的判斷, 如果 url中什么沒有code參數,就代表這個用戶是剛跳轉進來, 需要讓用戶跳轉到用戶授權頁面(這個授權頁面接收讓用戶同意獲取用戶open_id 之類的信息, 用戶授權頁面可以是有gan)
當用戶進入我們的頁面的時候js判斷是否授權,如果沒有授權就獲取授權地址重定向到授權頁面上進行授權,
授權地址中的參數有 公眾號的appid, scope 是否需要用戶手動授權,redirect_url 授權回調地址, response_type=code 用戶授權信息,回調的時候放在回調地址參數中,參數名稱是code
微信內置瀏覽器會將當前的用戶信息添加到授權url中,授權url多了幾個用戶測試: uin (用戶對於公眾號唯一id,base64轉碼結果), key(公眾號和uin綁定的token,過期時間大概半小時), pass_ticket (另一個驗證碼, 與uin綁定),
當我們點擊同意后,就會向微信的授權接口發送授權參數,
授權參數如下
uuid(授權頁面中帶上的) , snsapi_base 或 snsap_userinfo (是否用戶手動同意), allow(同意或on,無感授權的時候就是on),uin, key, pass_ticket, version
當授權完后會自動302重定向到我們配置的回調地址, 回調地址中攜帶 用戶授權參數 code
這時候我們的js就可以到用戶授權信息了,js獲取到用戶授權code 請求給后端,后端通過 微信公眾號 appid 和 密鑰 和 這個code 獲取用戶的open_id 和 access_token , 然后通過open_id 和 access_token 獲取真正的用戶信息