微信小程序获取openId, sessionKey, unionId

本文介绍了微信小程序中实现用户登录的步骤,包括在`onLaunch`钩子中调用`wx.login`获取code,然后通过code向后端请求`sns/jscode2session`接口来获得openid、sessionKey和unionId。强调了unionId的唯一性及其在不同应用间识别用户的作用,并指出需先在微信开放平台绑定小程序才能获取unionId。
摘要由CSDN通过智能技术生成

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了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值