JS&微信_微信受權

  • 微信api
  • 受權demo前端

  • 獲取openid --- snsapi_base
  • 獲取用戶信息 --- snsapi_userinfogit

1.前置條件

  1. 服務號(企業) -- 經過微信認證
    • 能夠在微信公衆平臺-開發-接口權限查看
  2. 須要先配置一下受權回調域名(只能配置一個)
    • 開發 - 接口權限 - 網頁服務 - 網頁賬號 - 網頁受權獲取用戶基本信息
    • 請注意,這裏填寫的是域名(是一個字符串),而不是URL,所以請勿加 http:// 等協議頭;

2.步驟

除了步驟一,其餘都必須由後臺請求github

因爲公衆號的secret和獲取到的access_token安全級別都很是高,必須只保存在服務器,不容許傳給客戶端。後續刷新access_token、經過access_token獲取用戶信息等步驟,也必須從服務器發起。api

  1. 用戶贊成受權,獲取code(能夠由前端來作)
  2. 經過code換取網頁受權access_token
  3. 刷新access_token(若是須要)
  4. 拉取用戶信息

3.具體實現(獲取用戶詳細信息snsapi_userinfo)

  1. 準備一個空白頁面,在空白頁面進行受權獲取code-用戶受權贊成安全

  2. 是不是微信(是則繼續,不然加載實際頁面結束)
    let ua = navigator.userAgent.toLowerCase(); let isWeixin = ua.indexOf('micromessenger') !== -1;
  3. 判斷是否拿到code(是則發起後臺拿到用戶信息步驟並加載實際頁面結束,不然繼續)
    3.爲了解決只能配置一個受權回調域名,請求後臺作一箇中間層
    文檔
    1. 讓後臺傳一個微信統一受權地址,本地跳轉到後臺指定的路徑
    2. 後臺指定的路徑去跳轉到微信受權
    3. 贊成受權後在跳回實際頁面
      4.爲了防止分享的時候獲取不到下一我的的受權信息
    • 須要在分享的時候清空受權返回的code,僅須要分享的連接清空!獲取後臺分享配置的不須要!
      5.爲了防止用戶獲取到受權後刷新頁面code過時重複獲取用戶信息問題
    • 能夠利用sessionStorage存儲一個標識進行識別

以上內容,若有錯誤請指出,不甚感激。
如需轉載,請註明出處服務器

相關文章
相關標籤/搜索