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 {
        }
        })
      }
    },

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

    愿你出走半生,归来仍是少年!
  • 相关阅读:
    Web---JSP-EL表达式
    JSP---JavaBean的使用-jsp:useBean标签相关
    Web---JSP注册技术的的演绎(3代)-JSP/EJB/Servlet/POJO/JavaBean
    Web---myAjax(自己写底层)-隐藏帧技术
    JSP---JSP中4个容器-pageContext使用
    JSP---演示ErroPage、isErroPage和jsp:forword标签
    JSP-讲解(生成java类、静态导入与动态导入)
    经典算法面试题目-替换字符串的内容(1.5)
    【Android UI】Android Layout XML属性
    【Android UI】:Fragment官方文档
  • 原文地址:https://www.cnblogs.com/wszxx/p/14582352.html
Copyright © 2011-2022 走看看