我们在小程序开发的时候经常遇到这种需求,需要在账号登陆的时候进行手机号获取,并使用手机号登陆。

本文讲述如何在前后端分离的状态下获取手机号

   查阅官网文档不难发现我们需要使用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

话不多说放代码

  1. uni.login({
  2. provider: 'weixin', //使用微信登录
  3. success: function(loginRes) {
  4.            console.log(loginRes.code)
               }
  5. })

这个里面获取到的loginRes.code就是我们需要的code,我们将code传输给后端就可以了。

后端只需要返回一个session_key我们前端就可以获取到手机号密文

  1. html:<button open-type="getPhoneNumber" size="mini" @getphonenumber="getPhoneNumber">获取手机号</button>

    函数://获取手机号
  2. getPhoneNumber(e) {
  3. if (e.detail.errMsg == "getPhoneNumber:ok") { // 用户允许或去手机号
  4. uni.request({
  5.   url: "这里请求的地址是后端进行解密的接口",
  6. method: "POST",
  7. header: {
  8. 'haneton-wildfire': 请求头
  9. },
  10. data: {
  11. encData: e.detail.encryptedData,
  12. iv: e.detail.iv,
  13. key: this.session_key,
  14.  },
  15.     success: (res) => {
  16.     console.log(res)
  17. }
  18. })
  19. } else {
  20.         alert("用户取消了授权")
  21. }
  22. }

以上是获取手机号授权并进行解密的函数,我们需要将之前后端返回的session_key保存并在这里携带发送请求,这个方法会自动获取密文等信息

以上是前后端分离前端获取手机号的方法和步骤欢迎指正

UniApp小程序开发如何获取用户手机号的更多相关文章

  1. 微信小程序开发之获取用户手机号码——使用简单php接口demo进行加密数据解密

    后边要做一个微信小程序,并要能获取用户微信绑定的手机号码.而小程序开发文档上边提供的获取手机号码的接口(getPhoneNumber())返回的是密文,需要服务器端进行解密,但是官方提供的开发文档一如 ...

  2. 逍遥云天 微信小程序开发之获取用户手机号码——使用简单php接口demo进行加密数据解密

    后边要做一个微信小程序,并要能获取用户微信绑定的手机号码.而小程序开发文档上边提供的获取手机号码的接口(getPhoneNumber())返回的是密文,需要服务器端进行解密,但是官方提供的开发文档一如 ...

  3. 小程序原生js获取用户权限

    1.首先要有一个按钮 <view name="authorizemodal"> <view class="drawer_screen" wx: ...

  4. 微信小程序开发之获取openid及用户信息

    1. 获取openid 1.1 获取code 调用接口获取登录凭证(code)进而换取用户登录态信息,包括用户的唯一标识(openid) 及本次登录的会话密钥(session_key).用户数据的加解 ...

  5. 小程序wx.getUserInfo获取用户信息方案介绍

    问题模块 框架类型 问题类型 API/组件名称 终端类型 操作系统 微信版本 基础库版本 API和组件 - -   - -     背景 小程序一个比较重要的能力就是获取用户信息,也就是使用 wx.g ...

  6. 小程序登录&授权&获取用户信息

    一 .登录 时序图如下: wx.login() 获取js_code 示例代码: App({   onLaunch: function() {     wx.login({       success: ...

  7. C#微信小程序服务端获取用户解密信息

    using AIOWeb.Models; using Newtonsoft.Json; using Newtonsoft.Json.Linq; using System; using System.C ...

  8. [小程序]微信小程序登陆并获取用户信息

    1.小程序js端调用框架登陆API,获取到一个临时code,拿着这个code去调用自己的服务端接口 2.在自己的服务器端,使用app_id app_secrect code可以获取到用户的openid ...

  9. Java springboot支付宝小程序授权,获取用户信息,支付及回调

    参考官方文档https://opendocs.alipay.com/mini/introduce/pay 支付宝小程序的支付和微信小程序的支付一样第一步都是要获取到用户的唯一标识,在微信中我们获取到的 ...

  10. 小程序开发之获取客户来源 scene 场景值 手机设备信息

    为什么要获取客户来源 用作数据分析,根据客户来源,做精准转化! 判断客户来源入口方式 1.通过官方的scene场景值 常见场景值 场景值ID 说明 1001 发现栏小程序主入口,「最近使用」列表 10 ...

随机推荐

  1. 微信小程序 入门总结篇

      页面生命周期 Page({ /** * 页面的初始数据 */ data: { }, /** * 生命周期函数--监听页面加载 */ onLoad: function (options) { }, ...

  2. 代码片断:GDI绘制带一定角度的椭圆

    //先将DXF文件中的Ellipse 解析到elpList 中 foreach (Ellipse ellipse in elpList) { //定义一个矩形 RectangleF rect = ne ...

  3. idea远程仓库无法更新导致的各种错误,jar包无法下载

    直接把下面的配置替换成settings.xml中的内容 <?xml version="1.0" encoding="UTF-8"?> <set ...

  4. win10无管理员权限下以压缩包方式安装JDK8

    使用场景:如果在没有管理员权限的情况下,无法运行.exe文件,可以使用这种方式安装,本次把JDK安装到D:\jdk-8u152 一:获取JDK8的压缩包 1.JDK8 华为镜像地址 2.将下载好的ex ...

  5. NET 实现 Cron 定时任务执行,告别第三方组件

    原文连接: (96条消息) NET 实现 Cron 定时任务执行,告别第三方组件_.net 定时任务_Phil Arist的博客-CSDN博客 代码: using System.Globalizati ...

  6. swagger 增强UI --knife4j

    knife4j 文档:  https://gitee.com/xiaoym/knife4j (1)简介 knife4j是为Java MVC框架集成Swagger生成Api文档的增强解决方案,前身是sw ...

  7. springboot-项目获取resources下文件

    背景: 项目的resources 目录下放置了一份txt文件,需求是想获取到这份文件转成File对象,调用文件上传的接口进行文件上传操作. 实现: 1.使用 ResourceUtils:本地ok,测试 ...

  8. iText5实现Java生成PDF

    参考代码:https://github.com/youcong1996/study_simple_demo 参考博客:https://blog.csdn.net/weixin_37848710/art ...

  9. UI界面实现SSH登录服务器并执行命令监控

    一.通过paramiko实现SSH远程登录服务器.执行命令并返回信息: 二.通过wxpython实现UI化: 三.代码实现如下: 1)主程序MainUI #coding:utf8 #!/usr/bin ...

  10. Prometheus Operator 与 kube-prometheus 之一-简介

    简介 Prometheus Operator Prometheus Operator: 在 Kubernetes 上管理 Prometheus 集群.该项目的目的是简化和自动化基于 Prometheu ...