UniApp小程序开发如何获取用户手机号
我们在小程序开发的时候经常遇到这种需求,需要在账号登陆的时候进行手机号获取,并使用手机号登陆。
本文讲述如何在前后端分离的状态下获取手机号
查阅官网文档不难发现我们需要使用uni.login()这个方法来获取用户的code,获取用户的openid和session_key是需要后端去发请求的,因为需要调取 https://api.weixin.qq.com/sns/jscode2session 这个接口来获取,官方说明不可以把这个域名作为白名单配置需要后端去发送请求。所以我们前端进行uni.login()获取code之后发送给后端让后端去结合四个参数(appid、secret、js_code、grant_type)来发送请求获取session_key和openid
话不多说放代码
uni.login({
provider: 'weixin', //使用微信登录
success: function(loginRes) {
console.log(loginRes.code)
}
})
这个里面获取到的loginRes.code就是我们需要的code,我们将code传输给后端就可以了。
后端只需要返回一个session_key我们前端就可以获取到手机号密文
html:<button open-type="getPhoneNumber" size="mini" @getphonenumber="getPhoneNumber">获取手机号</button>
函数://获取手机号
getPhoneNumber(e) {
if (e.detail.errMsg == "getPhoneNumber:ok") { // 用户允许或去手机号
uni.request({
url: "这里请求的地址是后端进行解密的接口",
method: "POST",
header: {
'haneton-wildfire': 请求头
},
data: {
encData: e.detail.encryptedData,
iv: e.detail.iv,
key: this.session_key,
},
success: (res) => {
console.log(res)
}
})
} else {
alert("用户取消了授权")
}
}
以上是获取手机号授权并进行解密的函数,我们需要将之前后端返回的session_key保存并在这里携带发送请求,这个方法会自动获取密文等信息
以上是前后端分离前端获取手机号的方法和步骤欢迎指正
UniApp小程序开发如何获取用户手机号的更多相关文章
- 微信小程序开发之获取用户手机号码——使用简单php接口demo进行加密数据解密
后边要做一个微信小程序,并要能获取用户微信绑定的手机号码.而小程序开发文档上边提供的获取手机号码的接口(getPhoneNumber())返回的是密文,需要服务器端进行解密,但是官方提供的开发文档一如 ...
- 逍遥云天 微信小程序开发之获取用户手机号码——使用简单php接口demo进行加密数据解密
后边要做一个微信小程序,并要能获取用户微信绑定的手机号码.而小程序开发文档上边提供的获取手机号码的接口(getPhoneNumber())返回的是密文,需要服务器端进行解密,但是官方提供的开发文档一如 ...
- 小程序原生js获取用户权限
1.首先要有一个按钮 <view name="authorizemodal"> <view class="drawer_screen" wx: ...
- 微信小程序开发之获取openid及用户信息
1. 获取openid 1.1 获取code 调用接口获取登录凭证(code)进而换取用户登录态信息,包括用户的唯一标识(openid) 及本次登录的会话密钥(session_key).用户数据的加解 ...
- 小程序wx.getUserInfo获取用户信息方案介绍
问题模块 框架类型 问题类型 API/组件名称 终端类型 操作系统 微信版本 基础库版本 API和组件 - - - - 背景 小程序一个比较重要的能力就是获取用户信息,也就是使用 wx.g ...
- 小程序登录&授权&获取用户信息
一 .登录 时序图如下: wx.login() 获取js_code 示例代码: App({ onLaunch: function() { wx.login({ success: ...
- C#微信小程序服务端获取用户解密信息
using AIOWeb.Models; using Newtonsoft.Json; using Newtonsoft.Json.Linq; using System; using System.C ...
- [小程序]微信小程序登陆并获取用户信息
1.小程序js端调用框架登陆API,获取到一个临时code,拿着这个code去调用自己的服务端接口 2.在自己的服务器端,使用app_id app_secrect code可以获取到用户的openid ...
- Java springboot支付宝小程序授权,获取用户信息,支付及回调
参考官方文档https://opendocs.alipay.com/mini/introduce/pay 支付宝小程序的支付和微信小程序的支付一样第一步都是要获取到用户的唯一标识,在微信中我们获取到的 ...
- 小程序开发之获取客户来源 scene 场景值 手机设备信息
为什么要获取客户来源 用作数据分析,根据客户来源,做精准转化! 判断客户来源入口方式 1.通过官方的scene场景值 常见场景值 场景值ID 说明 1001 发现栏小程序主入口,「最近使用」列表 10 ...
随机推荐
- 1011.Django状态保持以及表单
一.session保持状态 状态保持: 1. http协议是无状态的:每次请求都是一次新的请求,不会记得之前通信的状态: 2. 客户端与服务器端的一次通信,就是一次会话实现状态保持的方式:在客户端或服 ...
- vue input有值但还是验证不通过
验证失败原因: 因为input自动把输入的值转换为string类型,导致验证失败. 解决方案: 一. Input中的v-model改为v-model.number: 二.rules里面需要加type: ...
- 日志注解,基于ruoyi的后置切面改进而来
有次接口响应时间太长,想知道具体接口执行的时间是多少,于是决定通过注解来实现这个想法,刚好ruoyi本身就提供了完善的日志注解,虽然是采用后置通知,但是完全不影响我们改造它. 想要实现接口耗时的功能, ...
- swagger 增强UI --knife4j
knife4j 文档: https://gitee.com/xiaoym/knife4j (1)简介 knife4j是为Java MVC框架集成Swagger生成Api文档的增强解决方案,前身是sw ...
- mybatis-plus 开发环境在控制台打印日志
参考博客:https://blog.csdn.net/qq_32929057/article/details/109291919 # 注意在生产环境注释掉 mubatis-plus: configur ...
- 使用sync.Once实现高效的单例模式
1. 简介 本文介绍使用sync.Once来实现单例模式,包括单例模式的定义,以及使用sync.Once实现单例模式的示例,同时也比较了其他单例模式的实现.最后以一个开源框架中使用sync.Once实 ...
- 【CS231n assignment 2022】Assignment 2 - Part 2,优化器,批归一化以及层归一化
前言 博客主页:睡晚不猿序程 首发时间:2022.7.23 最近更新时间:2022.7.23 本文由 睡晚不猿序程 原创 作者是蒻蒟本蒟,如果文章里有任何错误或者表述不清,请 tt 我,万分感谢!or ...
- 太坑了,我竟然从RocketMQ源码中扒出了7种导致消息重复消费的原因
大家好,我是三友~~ 在众多关于MQ的面试八股文中有这么一道题,"如何保证MQ消息消费的幂等性". 为什么需要保证幂等性呢?是因为消息会重复消费. 为什么消息会重复消费? 明明已经 ...
- 【ASP.NET Core】在node.js上托管Blazor WebAssembly应用
由于 Blazor-WebAssembly 是在浏览器中运行的,通常不需要执行服务器代码,只要有个"窝"能托管并提供相关文件的下载即可.所以,当你有一个现成的 Blazor was ...
- C#笔记之泛型
泛型是C#中应用极为广泛的一种语法,本篇文章将详细介绍泛型的定义.使用.性能等. 一.什么是泛型 首先需要记住的是,泛型是.NET 2.0推出的语法,这样的话,泛型基本可以用于所有程序的开发,而不需要 ...