微信小程序实现微信授权登录

时间:2021-03-29 11:35:23   收藏:0   阅读:0

首先,需要通过button按钮来弹出授权框

<button open-type="getUserInfo" @getuserinfo="getUserInfo">微信登录</button>

getUserInfo(e) {
  //拿到用户信息

  信息包含头像,昵称
  let detail = e.detail || {}
  if (!detail.userInfo) {
    return;
  }

wx.login({

  success(res) {

    let code = res.code
    if (res.code) {//获取code,发起网络请求
      let data = {
        jsCode: res.code,
      }
      this.$api.wxLoginApi(data).then(res=>{
        if(res.code == 200){
          // console.log(res)
          if(res.result.openidList&&res.result.openidList[0]){
            uni.setStorageSync(‘openid‘, res.result.openidList[0])
          }
        if(!res.result.firstLogin){//判断是否第一次微信授权,第一次要去绑定手机
          uni.setStorageSync(‘userId‘,res.result.userId)
          uni.setStorageSync(‘sessionId‘,res.result.sessionId)
          isWorkshop()
        }else{
          const title="绑定手机"
          uni.navigateTo({
            url: `/pages/login/login?title=${title}&&type=1`
          })
         }
       }else{
        
        }
      })
    } else {
    console.log(‘登录失败!‘ + res.errMsg)
}
}
})

},

授权绑定手机号

<button open-type="getPhoneNumber" @getphonenumber="getPhoneNumber">授权手机号</button>

getPhoneNumber(e) {
  if(e.detail.encryptedData){
    let params = {
      openid:uni.getStorageSync(‘openid‘),
      encryptDataB64: e.detail.encryptedData,
      ivB64: e.detail.iv,
    },
  this.$api.wxDecryptData(params).then(res => {//对返回的手机号信息解密,拿到手机号
    if (res.code === 200) {
      // console.log(res)
      this.form.phone=res.result.phoneNumber
    } else {
    }
    })
  }
},

用户信息授权框授权后不再出现,手机号授权授权框一直可以出现

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2
迷上了代码!