小程序获取openid和unionid

通过调用wx.login获取code,调用 wx.getUserInfo获取encryptedData和iv

 getUserInfo(cb){
      wx.login({
        success: log_res => {
          wx.getUserInfo({
            withCredentials:true,
            success:res_user => {
              if(log_res.code){
              //调用以下方法
                getTocken(log_res.code,res_user.encryptedData,res_user.iv);
              }else {
                console.log('获取用户登录态失败!'+log_res.errMsg)
              }
            }
       })
    }
})
  
function getTocken(code,encryptedData,iv){
    Promisify.httpsPromisify(wx.request)({
      url: '  ',
      header: {
        "Content-Type":"application/x-www-form-urlencoded"
      },
      method:'GET',
      data:{
        code:code,
        encryptedData:encryptedData,
        iv:iv
      }
    }).then(function (res) {
      console.log(res)
      wx.setStorageSync('tocken', res.tocken)
    }.bind(this))  
}

提供的code+appid+appsecrect的获取以下信息

(
    [session_key] => xxxxxxx
    [expires_in] =>xxxxx
    [openid] => xxxxxxxx
    [unionid] => xxxxxxxx
)

服务器通过解密 encryptData 得到如下数据:

  {
    "openId": "OPENID",
    "nickName": "NICKNAME",
    "gender": GENDER,
    "city": "CITY",
    "province": "PROVINCE",
    "country": "COUNTRY",
    "avatarUrl": "AVATARURL",
    "unionId": "UNIONID",
    "watermark":
    {
        "appid":"APPID",
        "timestamp":TIMESTAMP
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容