1.前置條件
- 服務號(企業) -- 經過微信認證
- 須要先配置一下受權回調域名(只能配置一個)
- 開發 - 接口權限 - 網頁服務 - 網頁賬號 - 網頁受權獲取用戶基本信息
- 請注意,這裏填寫的是域名(是一個字符串),而不是URL,所以請勿加 http:// 等協議頭;
2.步驟
除了步驟一,其餘都必須由後臺請求github
因爲公衆號的secret和獲取到的access_token安全級別都很是高,必須只保存在服務器,不容許傳給客戶端。後續刷新access_token、經過access_token獲取用戶信息等步驟,也必須從服務器發起。api
- 用戶贊成受權,獲取code(能夠由前端來作)
- 經過code換取網頁受權access_token
- 刷新access_token(若是須要)
- 拉取用戶信息
3.具體實現(獲取用戶詳細信息snsapi_userinfo)
準備一個空白頁面,在空白頁面進行受權獲取code-用戶受權贊成安全
- 是不是微信(是則繼續,不然加載實際頁面結束)
let ua = navigator.userAgent.toLowerCase(); let isWeixin = ua.indexOf('micromessenger') !== -1;
- 判斷是否拿到code(是則發起後臺拿到用戶信息步驟並加載實際頁面結束,不然繼續)
3.爲了解決只能配置一個受權回調域名,請求後臺作一箇中間層
文檔
- 讓後臺傳一個微信統一受權地址,本地跳轉到後臺指定的路徑
- 後臺指定的路徑去跳轉到微信受權
- 贊成受權後在跳回實際頁面
4.爲了防止分享的時候獲取不到下一我的的受權信息
- 須要在分享的時候清空受權返回的code,僅須要分享的連接清空!獲取後臺分享配置的不須要!
5.爲了防止用戶獲取到受權後刷新頁面code過時重複獲取用戶信息問題
- 能夠利用sessionStorage存儲一個標識進行識別
以上內容,若有錯誤請指出,不甚感激。
如需轉載,請註明出處服務器