微信小程序獲取openid、unionid

注意1:

openid 并不能作為用戶的唯一標識,openid 同一用戶同一應用唯一,unionid 同一用戶不同應用唯一,unionid 才是唯一標識,如果需要在多公眾號、移動應用之間做用戶共通,則需要用 unionid,否則若是單一產(chǎn)品,則也可以用 openid 作為唯一標識。

注意2:

雖然前端能拿到openid,但是發(fā)布上線的時候會無法過審,因為出于安全考慮,前端代碼不允許暴露小程序appId和app secret(秘鑰),所以此種方法不可取。

方法一: 后端操作

在這里插入圖片描述

傳 code 后端獲取openid、unionid:

  1. 前端調(diào)用 wx.login() 獲取 臨時登錄憑證code ,并回傳到開發(fā)者服務器。
  2. 后端調(diào)用 auth.code2Session 接口,換取 用戶唯一標識 openid和 unionid 和 會話密鑰 session_key。

后端注意:

  1. 會話密鑰 session_key 是對用戶數(shù)據(jù)進行 加密簽名 的密鑰。為了應用自身的數(shù)據(jù)安全,開發(fā)者服務器不應該把會話密鑰下發(fā)到小程序,也不應該對外提供這個密鑰。
  2. 臨時登錄憑證 code 只能使用一次

小程序登錄操作官方文檔點擊查看

前端代碼:

    // 登錄
    wx.login({
      success: res => {
        wx.request({
          url: 'url',// 后端接口地址
          method: 'post',
          header: {
            'content-type': 'application/json' // 默認值
          },
          data: res.code, // 發(fā)送 res.code 到后臺換取 openId, sessionKey, unionId
          success (res) {
            if (res.statusCode == 200) {
              
              console.log(res);
              
            } else {
              console.log(res.errMsg)
            }
          },
          fail(err) {
            console.log(err);
          }
      })
    }
    })

方法2: 云開發(fā)

具體代碼可以參考 超簡單微信小程序獲取用戶openid

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

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