zoukankan      html  css  js  c++  java
  • 微信小程序实现微信授权登录

    首先,需要通过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 {
        }
        })
      }
    },

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

    愿你出走半生,归来仍是少年!
  • 相关阅读:
    绑定方式开始服务&调用服务的方法
    采用服务窃听电话示例
    后台服务运行示例
    Android短信监听器——示例
    利用广播实现ip拨号——示例
    Android图片的合成示例
    IIS 7.5 发布Web 网站步骤
    C# 中 多线程同步退出方案 CancellationTokenSource
    UML 类图常用表示方法.
    Socket Receive 避免 Blocking
  • 原文地址:https://www.cnblogs.com/wszxx/p/14582352.html
Copyright © 2011-2022 走看看