微信小程序 微信授權登錄 獲取openid和unionid、session_key

微信授權登錄這塊,一開始我是研究半天,后來并沒用用到,本來想前端獲取openid和unionid的,但是后來選擇了走后臺獲取了,但是也是研究半天,決定寫下來記錄一下,方便大家參考
微信授權的話,首先說,得給用戶制造一個自己手動觸發(fā)授權的環(huán)境,所以先搭建一個頁面,簡簡單單的
授權頁面

按鈕這塊的open-type需要是getUserInfo

<button type='primary' open-type="getUserInfo" lang="zh_CN" bindgetuserinfo="bindGetUserInfo">
        授權登錄
</button>

到這兒的時候一定要梳理清晰你要的是哪些數(shù)據(jù),還有這些數(shù)據(jù)要通過哪種方式去獲得和需要的參數(shù)

  • 用戶授權后,需要知道用戶是否授權成功,通過wx.getSetting查看是否成功

  • 成功的話,通過wx.login獲取用戶的code,因為獲取openid和unionid需要用code

  • 然后最后就是通過微信的auth.code2Session獲取我們最終想要的

獲取openid和unionid、session_key

/**
  * @name      獲取用戶信息
  * @date      2021-02-20
  */
  bindGetUserInfo(e) {
    // 獲取用戶授權
    wx.getSetting({
      success: (res) => {
      //判斷是否授權成功
        if (res.authSetting['scope.userInfo']) {
              wx.login({
                success: (rest) => {
                //用戶的code
                  let userCode = rest.code
                  wx.request({
                    // 自行補上自己的 APPID 和 SECRET
                   url:`https://api.weixin.qq.com/sns/jscode2session?appid=自己的appid&secret=密鑰&js_code=${userCode}&grant_type=authorization_code`,
                    success: res => {
                      // 獲取到用戶的 openid
                      console.log("用戶的openid:" + res.data.openid);
                      console.log("用戶的unionid:" + res.data.unionid);
                      console.log("用戶的session_key:" + res.session_key);
                    },
                    fail(e){
                      wx.showToast({
                        title: '獲取失敗',
                        icon: 'none'
                      });
                    },
                  });
                }
              })
        } else {
          wx.showToast({
            title: '請確認授權',
            icon: 'none'
          });
        }
      }
    });
  },

tips:獲取unionid的話是需要微信開放平臺綁定小程序的,不然是不可能獲取到的

查找 APPID 和 SECRET

微信公眾平臺->開發(fā)->開發(fā)管理->開發(fā)設置


開發(fā)設置.png

auth.code2Session

比較簡單,大家可以自行查看 link

在調(diào)這個接口的時候,一開始總是提示我code無效 40029,找了半天是因為創(chuàng)建項目用的appid和接口參數(shù)的appid不一樣,希望大家寫的時候注意

這樣就可以獲取到我們想要的數(shù)據(jù)啦

?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容