1、在app.js的onLaunch钩子函数中使用官方API

// 登录
    wx.login({
      success: res => {
        // 发送 res.code 到后台换取 openId, sessionKey, unionId
        if(res.code){
          //获取到code
          
        }else{
          wx.showToast({
            icon:'none',
            title: '微信登录失败,请重新进入小程序',
            duration:3000
          })
        }
      }
    })

2、调用登录凭证校验接口

GET
https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code

详情可以看看微信官方文档 》》
在这里插入图片描述
但一般是在后台调用,需要再返回给前端,所以可以获取到code后和后台换取 openId, sessionKey, unionId就行了

注意:code是有时效的

// 登录
    wx.login({
      success: res => {
        // 发送 res.code 到后台换取 openId, sessionKey, unionId
        if(res.code){
          wx.request({
            url: this.globalData.requestUrl+'/wx/get-openid',
            data:{
              code:res.code,
            },
            method:'POST',
            success(res2){
              console.log(res2.data.data.openid)
              console.log(res2.data.data.session_key)
              console.log(res2.data.data.unionid)
            }
          })
        }else{
          wx.showToast({
            icon:'none',
            title: '微信登录授权失败,请重新进入小程序',
            duration:3000
          })
        }
      }
    })

3、如果成功调用接口,但没有返回unionId请看下面

unionId 是用来区分用户的唯一性,在同一个微信开放平台帐号下的移动应用、网站应用和公众帐号(包括小程序),用户的 unionId 是唯一的。

所以你得先有一个微信开放平台帐号,且在管理中心绑定了小程序

在这里插入图片描述
之后再调用登录接口就有unionId了

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐