当前位置: 首页 > article >正文

uniapp抖音小程序,如何一键获取用户手机号

前端部分

点击按钮,获取手机号
<button class="button" open-type="getPhoneNumber" @getphonenumber="getPhoneNumber">一键获取</button>
传入sessionKey和encryptedData、iv

其中sessionKey是通过登录时,调用抖音接口https://developer.toutiao.com/api/apps/v2/jscode2session获得

encryptedData、iv则通过点击按钮回传的事件参数

  getPhoneNumber(e) {
    if (e.detail) {
      if (e.detail.errMsg == "getPhoneNumber:fail auth den") {
        uni.showToast({
          title: '小程序通过试运营期,才能一键获取手机号',
          icon: 'none'
        });
      }
      this.getUserPhone(e.detail)
    } else {
      this.hasPhoneValue = false
    }
  },

  async getUserPhone(query) {
    // douyin-ad-1ddba+123456 /admin/dyinAd/answerAd
    let Authorization = this.$user.token || "none Authorization";
    let http_url = this.$config.base_url + '/app/user/login/getDyPhone'
    let http_data = {
      sessionKey: this.$user.sessionKey,
      encryptedData: query.encryptedData,
      iv: query.iv,
      "admin": this.$config.admin,
    }
    let http_header = {
      Authorization
    }

    let result = await this.$http.post(http_url, http_data, http_header, 'json')
      .then(async (res) => {
        if (res && res.data) {
          let phone = {}
          Object.assign(phone, JSON.parse(res.data))
          this.formPhone = phone.phoneNumber
        }
      })
      .catch((err) => {

      });
  },

后端部分

解密手机号
async getDyPhone(query){
    const decipher = crypto.createDecipheriv(
      "aes-128-cbc",
      Buffer.from(query.sessionKey, "base64"),
      Buffer.from(query.iv, "base64")
    );
    let ret = decipher.update(query.encryptedData, "base64", 'utf8');
    ret += decipher.final('utf8');
    return ret;
  }


http://www.kler.cn/a/453869.html

相关文章:

  • Doris的SQL原理解析
  • HarmonyOS NEXT 实战之元服务:静态多案例效果(一)
  • 如何快速找到合适的科学问题
  • Java圣诞树
  • GitLab 服务变更提醒:中国大陆、澳门和香港用户停止提供服务(GitLab 服务停止)
  • 数学建模助力干细胞研究,配体纳米簇如何影响干细胞命运
  • ES学习module模块化(十二)
  • 新建一个springboot项目
  • 中关村科金智能客服机器人如何解决客户个性化需求与标准化服务之间的矛盾?
  • 深度学习实战103-基于KDD Cup 99数据集的搭建神经网络的检测系统(NIDS),通过对网络流量数据进行分析,提供完整代码
  • DALFox-一款XSS自动化扫描工具
  • GA-Kmeans-Transformer时序聚类+状态识别组合模型
  • vscode修改中文显示格式
  • transformer用作分类任务
  • Golang 的并发优势
  • 数据结构(哈希表(上)纯概念版)
  • 深入理解 MySQL 架构
  • (七)循环神经网络_LSTM长短期记忆网络
  • STM32单片机芯片与内部45 UART 不定长度接收 标志位结束 定时器超时 串口空闲中断
  • 【有作图代码】KL散度与自由能F:高斯分布下的“距离度量”与“能量计算”
  • 自定义 Celery的logging模块
  • asp.net 高校学生勤工俭学系统设计与实现
  • 【Emscripten执行遇到】emcc command not found
  • 如何通过 Kafka 将数据导入 Elasticsearch
  • Node.js 助力前端开发:自动化操作实战
  • 【数据结构与算法】数据结构与算法的基本概念