uniapp微信小程序获取用户手机号uniCloud云开发版
开发微信小程序,很多时候需要获取用户的手机号,这样方便平台更好的为用户服务,但是微信小程序不允许开发者直接获取用户的手机号,需要用户手动授权才能获取手机号,且需要配合后端进行解密才能获得完整的手机号,这里的前端采用的是uniapp开发,后端采用的是uniCloud,下面就给大家展示一下实现代码。
一、给button按钮添加open-type属性
<view class="layout"> <view class="tel">获取手机号示例</view><button @getphonenumber="getPhoneNumber" open-type="getPhoneNumber" type="primary">获取手机号</button>
</view>

如上所示,需要给button按钮,设置open-type="getPhoneNumber"属性,并且设置事件@getphonenumber=“getPhoneNumber”
//获取手机号
const getPhoneNumber = (e)=>{ console.log(e);
}

点击“获取手机号”按钮,会有授权弹窗,执行getPhoneNumber 该方法,不会直接获取到真实的手机号,而且获取到加密的数据信息,如下图所示。

那么如何才能获取用户授权后,真实的手机号码那,需要看一下官方的文档,getPhoneNumber文档地址,文档中可以直接使用https调用获取,但是需要用到appid和secret,如果在前端展示了自己的秘钥这样是不安全的,因为发送网络请求或者查看源码都会泄露秘钥的,最好在服务端执行,只需要将前端获取的code传给后端执行即可,代码如下:
//获取云对象
const cloudObj = uniCloud.importObject("cloud-service");const getPhoneNumber = async(e)=>{let obj = {code:e.detail.code,encryptedData: e.detail.encryptedData,iv: e.detail.iv}//调用云对象的phone方法let res = await cloudObj.phone(obj);console.log(res);
}
二、unicloud云端获取code调用查询手机号接口
看一下获取手机号的必填入参,已知code是从客户端通过getPhoneNumber方法获取到的,并且从传参给了云对象,但是access_token没有,需要你自己在后端获取凭证,凭证有效期5分钟,可以存入缓存,如果业务比较单一可以不存储,每次执行一次也可以,这种仅限于业务非常单一的形式,获取凭证的接口地址:https://developers.weixin.qq.com/miniprogram/dev/OpenApiDoc/mp-access-token/getAccessToken.html。

//unicloud云对象内的phone方法,params是客户端传来的值
async phone(params){//调用微信凭证接口,获取access_token,传入appid和secret//在这里可以判断是否已经有access_token缓存,如果没有再去调用凭证接口,避免重复调用let {data:{access_token}} = await uniCloud.request({url:"https://api.weixin.qq.com/cgi-bin/token",data:{grant_type:"client_credential",appid:"wxb3f72f0c8b700000",secret:"88826c257f4d0dc7e77f4b14911000000"}})let res = await uniCloud.request({url:"https://api.weixin.qq.com/wxa/business/getuserphonenumber?access_token="+access_token,method:"POST",data:{code:params.code}})return res;
}

通过以上方法,就可以获取到phone_info就是我们需要的真实手机号了,后端可以将手机号返回给客户端,也可以直接作为登录注册使用。
相关文章:
uniapp微信小程序获取用户手机号uniCloud云开发版
开发微信小程序,很多时候需要获取用户的手机号,这样方便平台更好的为用户服务,但是微信小程序不允许开发者直接获取用户的手机号,需要用户手动授权才能获取手机号,且需要配合后端进行解密才能获得完整的手机号…...
基于神经网络的文本分类的设计与实现
标题:基于神经网络的文本分类的设计与实现 内容:1.摘要 在信息爆炸的时代,大量文本数据的分类处理变得至关重要。本文旨在设计并实现一种基于神经网络的文本分类系统。通过构建合适的神经网络模型,采用公开的文本数据集进行训练和测试。在实验中&#x…...
31天Python入门——第18天:面向对象三大特性·封装继承多态
你好,我是安然无虞。 文章目录 面向对象三大特性1. 封装2. 继承3. 多态4. 抽象基类5. 补充练习 面向对象三大特性 面向对象编程(Object-Oriented Programming, 简称OOP)有三大特性, 分别是封装、继承和多态.这些特性是面向对象编程的基础, …...
第十六届蓝桥杯模拟二(串口通信)
由硬件框图可以知道我们要配置LED 和按键 一.LED 先配置LED的八个引脚为GPIO_OutPut,锁存器PD2也是,然后都设置为起始高电平,生成代码时还要去解决引脚冲突问题 二.按键 按键配置,由原理图按键所对引脚要GPIO_Input 生成代码,在文件夹中添加code文件夹,code中添加fun.…...
22--交换安全与端口隔离完全指南:MAC地址的奇幻漂流
🌐 交换安全与端口隔离完全指南:MAC地址的奇幻漂流 🎩 引言:当数据包参加假面舞会 想象一下,网络世界正在举办盛大的假面舞会。每个设备都戴着MAC地址面具入场,交换机就是严格的安检员。本文将带你揭秘&…...
Redis和三大消息队列
一、中间件核心概念解析 1. Redis Redis是一种高性能的内存数据库,支持多种数据结构和持久化机制,常用于缓存、队列等场景。 (1)核心数据结构 数据结构特性与典型应用场景String存储文本、数值(如计数器࿰…...
1.2-WAF\CDN\OSS\反向代理\负载均衡
WAF:就是网站应用防火墙,有硬件类、软件类、云WAF; 还有网站内置的WAF,内置的WAF就是直接嵌在代码中的安全防护代码 硬件类:Imperva、天清WAG 软件:安全狗、D盾、云锁 云:阿里云盾、腾讯云WA…...
UE5学习笔记 FPS游戏制作32 主菜单,暂停游戏,显示鼠标指针
文章目录 一主菜单搭建UI显示主菜单时,暂停游戏,显示鼠标绑定按钮 二 打开主菜单 一主菜单 搭建UI 添加一个MainUi的控件 添加一个返回游戏的按钮和一个退出游戏的按钮 修改一下样式,放中间 显示主菜单时,暂停游戏࿰…...
LLM - 开源强化学习框架 OpenR1 的环境配置与训练参数 教程
欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/146838740 免责声明:本文来源于个人知识与公开资料,仅用于学术交流,欢迎讨论,不支持转载。 OpenR1 是一个开源的强化学习框架,复现 DeepSeek-R1 的训练流程,为研…...
蓝桥杯备赛之枚举
用循环等方式依次去枚举所有的数字组合,一一验证是否符合题目的要求 题目链接 0好数 - 蓝桥云课 题目解析 好数的概念: 数的奇数位位奇数,偶数位为偶数,就是一个好数 求输入n里面有多少个好数 题目原理 1> 遍历每个数 2> 每次遍历判断是不是好数 把这…...
C++编程语言:抽象机制:一个矩阵的设计(Bjarne Stroustrup)
第29章 一个矩阵的设计(A Matrix Design) 目录 29.1 引言 29.1.1 基本的 Matrix 用法 29.1.2 Matrix 的要求 29.2 一个 Matrix 模板 29.2.1 构造和赋值(Construction and Assignment) 29.2.2 下标和分片(Subscripting and Slicing) 29.3 Matrix算术运算(Matrix…...
MSYS2学习笔记
前言 本文内容是MSys2 Documentation的学习笔记可以使用MSYS2编译QGis 学习笔记 什么是MSYS2? MSYS2(Minimal System 2)是一个为Windows平台打造的软件开发环境和包管理系统,它结合了Cygwin的POSIX兼容层、Arch Linux的pacman…...
Vue 2 和 Vue 3 有什么区别
Vue 2 和 Vue 3 是 Vue.js 框架的两个主要版本,它们在核心特性、性能、API 设计等方面有一些显著的区别。以下是它们的主要区别: 1. 核心特性 • Composition API: • Vue 3 引入了 Composition API,这是一种新的 API࿰…...
合规+增效 正也科技携智能营销产品出席中睿论坛
正也科技作为医药数字化领域的标杆企业,受邀参展第二届中睿医健产业企业家年会暨第十三届中睿医药新春论坛,本次论坛以“合力启新程”为主题,吸引了800多位医药健康企业的董事长、总经理参与,并通过主论坛、分论坛、路演等形式探讨…...
计算机网络 TCP/IP参考模型
目录 TCP IP模型预览 OSI和TCP的相同点 OSI和TCP的不同点 层参考模型 层参考模型的数据封装与解封装 TCP IP模型预览 OSI和TCP的相同点 OSI和TCP的不同点 层参考模型 层参考模型的数据封装与解封装...
小程序:富文本的处理
小程序:富文本的处理 details.vue <template><view class="pageContainer details no-safe-area-inset-bottom"><view class="mo-card" style="margin: 0;box-shadow: none;"><view class="mo-card-header">…...
JSON的基础知识
文章目录 前言json协议的基本格式json 数组类型 的语法规则json协议报文的实例json常见的一些格式错误在gd32中使用cjson库小结 前言 json协议在互联网应用,物联网应用中都会用到。所谓工欲善其事必先利其器,我们需要学习了解json协议的具体格式…...
区间预测 | MATLAB实现QRBiGRU门控循环单元分位数回归时间序列区间预测
区间预测 | MATLAB实现QRBiGRU门控循环单元分位数回归时间序列区间预测 目录 区间预测 | MATLAB实现QRBiGRU门控循环单元分位数回归时间序列区间预测效果一览基本介绍模型描述程序设计参考资料 效果一览 基本介绍 区间预测 | MATLAB实现QRBiGRU门控循环单元分位数回归时间序列区…...
从研究动机视角对无监督图像去雾论文的分类
对目前拥有(2020年--2024年)的无监督图像去雾论文进行动机分类。总计51篇。 1.数据依赖与配对数据稀缺问题 1.1 论文《DEHAZE-GLCGAN: UNPAIRED SINGLE IMAGE DEHAZING VIA ADVERSARIAL TRAINING》- 2020年 模型的特点如下: 将去雾问题转化…...
11 配置Hadoop集群-免密登录
第一课时 一、复习导入 前面的课程中我们在虚拟机上安装并测试使用了hadoop的示例程序wordcount,并且在准备好了集群的同步工具,那接下来,我们就可去配置hadoop集群了。 二、授新 (一)认识ssh命令 SSH(Secu…...
13 配置Hadoop集群-测试使用
第一课时 一、导入 前面的课程我们搭建了hadoop集群,并成功启动了它,接下来我们看看如何去使用集群。 测试的内容包括:1.上传文件,2.下载文件,3.运行程序 二、授新 (一)上传小文件 上传文件的时…...
Android Product Flavors 深度解析与最佳实践:构建多版本应用的全方位指南
1. 高效配置模板 1.1 现代化多维度配置 (Kotlin DSL) android {flavorDimensions listOf("version", "market", "environment")productFlavors {register("free") {dimension "version"applicationIdSuffix ".free…...
git命令简陋版本
git push git pull 临时仓库暂存区 ##############创建提交################ git init #创建git地址 git config --global user.name "***YQ1007" git config --global user.email "***gmail.com" git remote…...
简单ELK框架搭建
简介 ELK 框架是一套开源的日志管理和分析工具,由 Elasticsearch、Logstash 和 Kibana 三个主要组件组成,现在新增了Filebeat组件,可以更高效的收集数据。 Elasticsearch:是一个分布式、高可扩展的开源搜索引擎,能快速…...
Notepad++正则匹配案例
正则表达式 – 简介 | 菜鸟教程 正则表达式在线测试 | 菜鸟工具 \s 表示空白字符。包括,空格,制表符等 “ ” 只表示空格。 \s 可匹配至少一个空白字符。 [ ] 只表示多个空格。 \d 数字 () 定义变量,括号里的为一个变量,读取变…...
Vue2和Vue3响应式的基本实现
目录 简介Vue2 响应式Vue2 响应式的局限性 Vue3 响应式Vue3 响应式的优点 Vue2 和 Vue3 响应式对比 简介 在 Vue 框架中,数据的响应式是其核心特性之一。当页面数据发生变化时,我们希望界面能自动更新,而不是手动操作 DOM。这就需要对数据进…...
RCE(自增、取反、异或)
自增: 也就是说,a > b,b > c... 所以,我们只要能拿到一个变量,其值为a,通过自增操作即可获得a-z中所有字符。 无字母数字构造: 所有敏感字符串(ASSERT、_POST)通过自增动态生…...
C语言字符串处理相关函数详解
C语言字符串处理相关函数详解 相关函数详解1. **字符串拷贝**:strcpy 和 strncpy 2. **字符串连接**:strcat 和 strncat 3. **字符串比较**:strcmp 和 strncmp 4. **字符串长度**:strlen 5. **字符串查找**:strchr 和 …...
【深度学习新浪潮】图像修复(Image Inpainting)技术综述:定义、进展与应用展望
本文为精简版,完整技术细节与参考文献可与作者讨论。 1. 图像修复的定义与核心目标 图像修复(Image Inpainting)是一种通过算法手段填补图像中缺失区域或移除不需要对象的技术,其核心目标是利用图像上下文信息生成与周围像素一致且视觉自然的内容。该技术通过计算机视觉和…...
贪心算法(14)(java)无重叠区间
题目:给定一个区间的集合 intervals ,其中 intervals[i] [starti, endi] 。返回 需要移除区间的最小数量,使剩余区间互不重叠 。 注意 只在一点上接触的区间是 不重叠的。例如 [1, 2] 和 [2, 3] 是不重叠的。 示例 1: 输入: intervals [[…...
