JS&微信_微信授權


1.前置條件

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

2.步驟

除了步驟一,其他都必須由后台請求

由於公眾號的secret和獲取到的access_token安全級別都非常高,必須只保存在服務器,不允許傳給客戶端。后續刷新access_token、通過access_token獲取用戶信息等步驟,也必須從服務器發起。

  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存儲一個標識進行識別

以上內容,如有錯誤請指出,不甚感激。
如需轉載,請注明出處


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM