uni-app实现一键登录(企业版:因为获取手机号功能**目前针对非个人开发者**,所以个人开发者无法唤起获取手机号界面)

微信授权登录

用户在使用小程序时,其实已登录微信,其本质上就是:微信授权给小程序读取微信用户信息
在这里插入图片描述

获取登录凭证(企业版)

前端:调用 wx.login() 接口获取登录凭证(code)。

后端:通过凭证(code)向微信服务器生成用户登录态。

<script setup lang="ts">
import { onLoad } from '@dcloudio/uni-app'// 获取 code 登录凭证
let code = ''
onLoad(async () => {const res = await wx.login()code = res.code
})
</script>

:::

warning 注意
code 获取不要在 getphonenumber 事件回调函数调用,否则可能会出现错误!!!
用户登录态,不包含用户昵称、性别、手机号码等信息,作用是用于后端与微信服务器通讯。

获取手机号码

出于安全限制,小程序【规定】想获取用户的手机号,必须由用户主动【点击按钮】并【允许申请】才可获取加密的手机号信息。

前端:提供 open-type 按钮,在事件处理函数中获取加密的手机号信息。

后端:解密手机号信息,把手机号和用户登录态关联在一起。
在这里插入图片描述
参考代码


<script setup lang="ts">
import { postLoginWxMinAPI } from '@/services/login'
import { onLoad } from '@dcloudio/uni-app'
import { useMemberStore } from '@/stores/modules/member'
let useMemberStores = useMemberStore()
// 获取 code 登录凭证
let code = ''
onLoad(async () => {const res = await wx.login()code = res.code
})// 获取用户手机号码
const onGetphonenumber: UniHelper.ButtonOnGetphonenumber = async (ev) => {// 获取参数const encryptedData = ev.detail.encryptedData!const iv = ev.detail.iv!// 登录请求
let res= await postLoginWxMinAPI({ code, encryptedData, iv })// 登录成功保存用户信息useMemberStores.setProfile(res.result)// 成功提示uni.showToast({ icon: 'none', title: '登录成功' })setTimeout(() => {// 页面跳转uni.switchTab({ url: '/pages/my/my' })}, 500)
}
</script><template><view class="viewport"><view class="login"><button class="button phone" open-type="getPhoneNumber" @getphonenumber="onGetphonenumber"><text class="icon icon-phone"></text>手机号快捷登录</button></view></view>
</template>

::: danger 常见问题

Q:为什么我无法唤起获取手机号的界面?

A:获取手机号功能目前针对非个人开发者,所以个人开发者无法唤起获取手机号界面 详见文档。

:::

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/611118.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据结构期末复习笔记

文章目录 数据结构期末复习第一章&#xff1a;数据结构绪论第二章&#xff1a;顺序表与单链表第三章&#xff1a;其它链表第四章&#xff1a;栈如何中缀转后缀后缀如何计算 第五章&#xff1a;队列第六章&#xff1a;串第七章&#xff1a;树的概念和遍历第八章&#xff1a;赫夫…

muduo网络库剖析——网络地址InetAddress类

muduo网络库剖析——网络地址InetAddress类 前情从muduo到my_muduo 概要socketaddr_in介绍成员用法 网络地址转换函数 框架与细节成员函数使用方法 源码结尾 前情 从muduo到my_muduo 作为一个宏大的、功能健全的muduo库&#xff0c;考虑的肯定是众多情况是否可以高效满足&…

flutter的状态管理学习

文章目录 1.flutter widget分类2. 代理组件又分为3. 状态 state 数据4. 刷新 数据变化5. code 1.flutter widget分类 组合渲染代理 2. 代理组件又分为 Positioned向父组件传递数据InheritedWidget向子组件传递数据 3. 状态 state 数据 状态就是用到了向子组件传递数据&#xff…

在矩池云使用微调ChatGLM3-6B教程

今天给大家介绍下如何在矩池云使用ChatGLM3-6B模型。 1 简介 GitHub&#xff1a;https://github.com/THUDM/ChatGLM3 魔搭&#xff1a;https://modelscope.cn/models/ZhipuAI/chatglm3-6b/ ChatGLM3 是智谱AI和清华大学 KEG 实验室联合发布的新一代对话预训练模型。ChatGLM3…

租房别再傻傻的扯网线了!随身WiFi靠谱品牌推荐,哪个随身WiFi最好用

如果你是租房党&#xff0c;并且预算有限的话&#xff0c;拉网线太麻烦了&#xff0c;价格很贵&#xff0c;需要搬家的时候还要重新扯线&#xff0c;事儿很多。想买一个网速快&#xff0c;便捷的随身WiFi看电影、刷刷抖音、打打游戏&#xff0c;那一定一定要认真看完我这篇文章…

NSIS 安装windows 安装包(包括QT和MFC)

NSIS&#xff08;Nullsoft Scriptable Install System&#xff09;是一个开源的 Windows 系统下安装程序制作程序。它提供了安装、卸载、系统设置、文件解压缩等功能。 基本概念 区段 是对应某种安装/卸载选项的处理逻辑&#xff0c;该段代码仅当用户选择相应的选项才被执行…

metrics安装异常原因【doesn‘t contain any IP SANs】

1、问题背景 安装好k8s后&#xff0c;安装metrics-server后发现对应的pod一直无法启动。 apiVersion: v1 kind: ServiceAccount metadata:labels:k8s-app: metrics-servername: metrics-servernamespace: kube-system --- apiVersion: rbac.authorization.k8s.io/v1 kind: Cl…

Jasper report InputStream动态生产Logo

第一步&#xff0c;新建一个Parameter 新建一个对象Parameter&#xff0c;类型为java.io.InputStream 第二步&#xff0c;拖拽Image对象 拖拽Image对象&#xff0c;并调整长宽&#xff0c;Image下选择Expression $P{Logo_Blue} 第三步&#xff0c;把图片转换成stream rptHea…

numpy100练习题,包含相应使用函数解释

取自github开源项目&#xff1a;numpy100题 文章目录 1. 导入numpy库并简写为 np (★☆☆)2. 打印numpy的版本和配置说明 (★☆☆)3. 创建一个长度为10的空向量 (★☆☆)4. 如何找到任何一个数组的内存大小&#xff1f; (★☆☆)5. 如何从命令行得到numpy中add函数的说明文档?…

D41|打家劫舍

198.打家劫舍 初始思路&&题解复盘&#xff1a; 确定dp数组&#xff08;dp table&#xff09;以及下标的含义 dp[i]&#xff1a;考虑下标i&#xff08;包括i&#xff09;以内的房屋&#xff0c;最多可以偷窃的金额为dp[i]。 2.确定递推公式 决定dp[i]的因素就是第i房…

resulttype和parametertype的区别

Mybatis的Mapper文件中的select,insert,update,delect元素中都有一个parameterType和resultType属性,parameterType属性用于对应的mapper接口方法接受的参数类型,resultType用于指定sql输出的结果类型 resultType与parameterType 的基本使用的区别 &#xff1a; 1、使用resul…

Unity 实用方法 合集

Unity 实用方法 合集 Unity 打字机效果2D 坐标旋转计算球面坐标求值平滑移动鼠标位置获取2D屏幕坐标转世界坐标物体朝向目标多物体中心点生成本地图片加载画面线框显示画面线框显示 搭载效果 贝塞尔曲线绘制贝塞尔曲线绘制 搭载效果 网格弯曲网格弯曲 搭载效果 Delaunay 模型生…

安泰ATA-4014高压功率放大器在传感器脉冲涡流检测中的应用

传感器在工程领域起着至关重要的作用&#xff0c;能够实时获取各种物理量的信息。而功率放大器作为传感器信号处理的重要组成部分&#xff0c;广泛应用于各种测量和控制系统中。本文将探讨功率放大器在这一领域的重要性和作用。 首先&#xff0c;了解传感器脉冲涡流检测的基本原…

二、电脑备份

一、电脑备份 解释&#xff1a;window10目前有电脑备份的功能&#xff0c;一般备份C盘(因为系统在这里)&#xff0c;这个功能挺重要的&#xff0c;能够帮你在危难的时候把电脑拉回来&#xff0c;在按照xxxx教程安装驱动&#xff0c;操作注册表&#xff0c;修改C盘里面跟系统有…

java中string转timestamp(日期类型转换)

在Java中&#xff0c;可以使用以下几种方法将String转换为Timestamp&#xff1a; 方式一&#xff1a;使用SimpleDateFormat类 public class Main {public static void main(String[] args) {String dateString "2021-01-01 12:00:00";DateFormat dateFormat new S…

SpringBoot项目使用JWT令牌进行权限校验

要在Spring Boot中进行JWT校验&#xff0c;你需要遵循以下步骤&#xff1a; 1. 添加依赖 在你的pom.xml文件中添加以下依赖&#xff1a; <dependency><groupId>io.jsonwebtoken</groupId><artifactId>jjwt</artifactId><version>0.9.1&…

亚信安慧AntDB团队引领数据库创新浪潮

湖南亚信安慧科技有限公司&#xff0c;原亚信科技AntDB团队&#xff0c;近日获得信创工委会颁发的创新活跃度荣誉&#xff0c;充分肯定了其在科技创新领域的杰出表现。在当前全球经济下行的大环境中&#xff0c;创新正逐渐成为国家、企业和个人发展的关键因素。亚信安慧作为一家…

react useEffect

文章目录 react useEffect什么是 react useEffectdemo: 使用useEffect从后台获取版本信息 react useEffect 什么是 react useEffect useEffect 是 React Hooks 中非常重要的一个 Hook。它的名称来源于 Effect 这个词,之所以这么命名,是因为它可以让你在函数组件中执行副作用操…

AI芯片:神经网络研发加速器、神经网络压缩简化、通用芯片 CPU 加速、专用芯片 GPU 加速

AI芯片&#xff1a; 神经网络研发加速器、神经网络压缩简化、通用芯片 CPU 加速、专用芯片 GPU 加速 神经网络研发加速器神经网络编译器神经网络编译器 神经网络加速与压缩&#xff08;算法层面&#xff09;知识蒸馏低秩分解轻量化网络剪枝量化 通用芯片 CPU 加速x86 加速arm 加…

【Linux】应用与驱动交互及应用间数据交换

一、应用程序与 Linux 驱动交互主要通过以下几种方式&#xff1a; 1. 系统调用接口&#xff08;System Calls&#xff09;: 应用程序可以通过系统调用&#xff0c;如 open(), read(), write(), ioctl(), 等来与设备驱动进行交互。这些调用最终会通过内核转发到相应的驱动函数…