uniapp-微信授权登录

news2024/11/20 8:40:30

对于制作这个demo的时候是可以使用的,如果不能使用勿喷,如有问题评论区讨论,谢谢大家!

目录

​编辑

前言

完整代码以及注释、使用方法

用法

解析


前言

在移动应用开发中,提供第三方登录是一种常见的用户认证方式。微信登录作为一种广泛使用的第三方登录方式,在许多应用中都有集成。uni-app 是一个使用 Vue.js 开发所有前端应用的框架,它支持开发者使用同一套代码同时发布到 iOS、Android、Web 以及各种小程序和快应用平台。

在这段代码中,我们将探讨如何在 uni-app 中实现微信授权登录的功能。这个功能允许用户使用他们的微信账号快速登录应用,提高了用户体验并减少了用户注册和登录的门槛。

完整代码以及注释、使用方法

wxlogin() {
				this.tanchu_sheng = false;
				//先获取用户的信息
				uni.getUserInfo({
					desc: '登录的数据',
					success(ures) {
						console.log(ures, '返回的用户信息');
						//这个地方的用户信息无论登录成功失败都可以拿到,只是拿到用户的信息
						//在成功的回调中去使用微信登录
						uni.login({
							provider: 'weixin', //使用微信登录
							success(lres) {
								console.log(lres, '获取到的code--------1');
								//我们要根据上面获取的code码去作为请求参数发送给后端
								let params = {
									code: lres.code
								};
								console.log(lres.code, '查看code--------2');

								// 1
								uni.request({
									url: '接口', //这里用自己的地址获取
									method: 'POST',
									data: {
										code: lres.code
									},
									success: (res) => {
										console.log(res, '测试是否成功?');
										// 提示

										uni.showToast({
											title: `登陆成功`,
											icon: 'none',
											duration: 2000,
											success: () => {
												// console.log('轻提示显示成功');
												setTimeout(function() {
													uni.reLaunch({
														url: '/pages/index/index',
													});
												}, 2000);

											},
											fail: (error) => {
												// console.error('轻提示显示失败', error);
											}
										});
									}
								});
								// 2
							}
						});
					}
				});
			},

用法

这段代码定义了一个 wxlogin 方法,该方法执行微信登录的整个流程。下面是这个方法的详细步骤和用法:

  1. 关闭弹窗: this.tanchu_sheng = false; 这行代码的作用是关闭一个弹窗(可能是一个授权提示或者其他用户交互界面)。这是为了确保在开始微信登录流程之前,页面上不会有其他干扰用户的元素。

  2. 获取用户信息: 使用 uni.getUserInfo 方法来获取用户的微信信息。这个方法会弹出一个窗口让用户确认是否授权应用获取他们的微信信息。

    • desc: 提供一个描述,告诉用户为什么需要这些权限。
    • success: 如果用户同意授权,会调用这个回调函数,并将用户的信息作为参数传递。
  3. 使用微信登录: 在获取用户信息成功后,调用 uni.login 方法进行微信登录。

    • provider: 设置为 'weixin',表示使用微信进行登录。
    • success: 登录成功后的回调函数,会返回一个包含用户凭证 code 的对象。
  4. 将 code 发送到服务器: 使用 uni.request 方法将获取到的 code 发送到服务器。

    • url: 服务器端处理微信登录的接口地址。
    • method: 设置为 'POST',表示使用 POST 方法提交数据。
    • data: 包含 code 的对象,将被发送到服务器。
    • success: 当请求成功时调用的回调函数。
  5. 处理登录结果: 在服务器成功处理微信登录后,显示一个提示信息,并在 2 秒后重定向用户到首页。

解析

这段代码展示了如何在 uni-app 中实现微信登录的完整流程。这个过程涉及到用户授权、获取用户信息、使用微信登录以及与服务器端的交互。

  1. 用户体验: 通过提供微信登录,应用能够提供更快捷、更方便的用户登录体验,特别是对于已经安装了微信并且频繁使用微信的用户。

  2. 安全性: 微信登录是一种相对安全的登录方式,因为它依赖于微信的用户认证机制。应用本身不需要存储用户的用户名和密码,减少了用户信息泄露的风险。

  3. 用户信息获取: 通过微信登录,应用能够直接获取到用户的微信信息,这可以用来提升用户体验,例如,直接使用用户的微信头像和昵称。

  4. 服务器端验证: 将微信登录的 code 发送到服务器端进行验证和处理是一种常见的做法。这样可以确保登录过程的安全性,防止恶意攻击。

  5. 错误处理和用户提示: 在这段代码中,虽然提供了成功的提示,但是对于可能出现的错误情况并没有进行处理。在实际应用中,增加错误处理逻辑是非常重要的,以确保用户在遇到问题时能够得到明确的指导。

  6. 代码优化: 这段代码中有一些重复的部分,例如 console.log(lres.code, '查看code--------2');console.log(res, '测试是否成功?'); 主要用于调试。在实际生产环境中,应该去除不必要的调试信息,保持代码的整洁。

总的来说,这段代码提供了一个微信登录的完整实现示例,展示了如何在 uni-app 中集成微信登录,以及如何处理登录过程中的各个步骤。通过这种方式,开发者可以在多个平台上提供一致的用户登录体验,提高用户满意度和应用的使用率

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

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

相关文章

Android Studio Logcat日志VIVO手机显示*号问题

咨询VIVO客服 1、拨盘输入 *#06# 获取串码,发送给客服 2、拨号盘输入*#*#112#*#*-右上角菜单-更多-一键授权 注意不要刷机,恢复出厂设置,手动取消授权哦

【数据结构】数组和字符串(五):特殊矩阵的压缩存储:稀疏矩阵——压缩稀疏行(CSR)

文章目录 4.2.1 矩阵的数组表示4.2.2 特殊矩阵的压缩存储a. 对角矩阵的压缩存储b~c. 三角、对称矩阵的压缩存储d. 稀疏矩阵的压缩存储——三元组表e. 压缩稀疏行(Compressed Sparse Row,CSR)矩阵结构体创建CSR矩阵元素设置初始化打印矩阵销毁…

位图算法经典剖析(未完)

第一题 只出现一次的数字|| 给你一个整数数组 nums ,除某个元素仅出现 一次 外,其余每个元素都恰出现 三次 。请你找出并返回那个只出现了一次的元素。 力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 class Solution { publ…

35二叉树-树的最小深度

目录 LeetCode之路——111. 二叉树的最小深度 分析 解法一:广度优先查询 解法二:深度优先查询 LeetCode之路——111. 二叉树的最小深度 给定一个二叉树,找出其最小深度。 最小深度是从根节点到最近叶子节点的最短路径上的节点数量。 说…

基于STM32与ESP8266的太空人WiFi天气时钟(代码开源)

前言:本文为手把手教学ESP8266著名开源项目——太空人WiFi天气时钟,不同的是本次项目采用的是STM32作为MCU。两者开发过程中有因为各自芯片的特点(时钟频率,内存大小等),导致开发程序大不相同,很…

Redis 持久化配置,RDB和AOF方式配置说明

文章目录 一、概述二、RDB 持久化方式配置三、AOF 持久化方式配置 如果您对Redis的了解不够深入请关注本栏目,本栏目包括Redis安装,Redis配置文件说明,Redis命令和数据类型说明。 一、概述 Redis 持久化是指将 Redis 数据存储到磁盘上&#x…

KVM实验之动态迁移

前言 一台NFS(192.168.184.132) 一台KVM-a(192.168.184.133) 一台KVM-b(192.168.184.134) NFS配置: [rootlocalhost ~]# setenforce 0 //关闭selinux [rootlocalhost ~]# service iptables st…

python re 匹配所有字段名称相同的值

import retext {"code": 200,"message": "success","traceId": "da0b668c-4d67-44bf-907f-c072fc63839a","data": {"list": [{"articleId": 121862102,"title": "python 目录…

k8s 金丝雀发布与声明式管理

Deployment控制器支持自定义控制更新过程中的滚动节奏,如“暂停(pause)”或“继续(resume)”更新操作。比如等待第一批新的Pod资源创建完成后立即暂停更新过程,此时,仅存在一部分新版本的应用,主体部分还是旧的版本。然后&#xf…

用图说话——流程图进阶

目录 一、基本流程图 二、时序流程图 一、基本流程图 经常阅读歪果仁绘制的流程图,感觉比较规范,自己在工作中也尝试用他们思维来绘图,这是一个小栗子: 二、时序流程图 在进行Detail设计过程中,一般的绘图软件显得…

微信小程序笔记功能(富文本editor功能)开发

一、效果图展示 模拟器及pc 端效果图 手机端就不贴了 二、把官方示例copy到自己的项目传送门 三、改一改上传图片功能 insertImage() {const that thiswx.chooseImage({// count:1 一次选择图片的个数success: function (response) {// 多张图片上传response.tempFilePaths…

基于opencv的selenium滑动验证码的实现

这篇文章主要介绍了基于opencv的selenium滑动验证码的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 基于selenium进行动作链 由于最近很多人聊到滑动验证码…

Python通过pyecharts对爬虫房地产数据进行数据可视化分析(一)

一、背景 对Python通过代理使用多线程爬取安居客二手房数据(二)中爬取的房地产数据进行数据分析与可视化展示 我们爬取到的房产数据,主要是武汉二手房的房源信息,主要包括了待售房源的户型、面积、朝向、楼层、建筑年份、小区名称…

图像去噪滤波算法汇总(Python)

前言 上篇文章:图像数据噪音种类以及Python生成对应噪音,汇总了常见的图片噪音以及噪音生成方法,主要用在数据增强上面,作为数据集填充的方式,可以避免模型过拟合。想要了解图像数据增强算法的可以去看本人所撰这篇文…

IO,库-10.24.25

库-10.24.25 一、概念 头文件&#xff1a;.h&#xff1a;函数声明&#xff0c;结构体定义&#xff0c;宏定义&#xff0c;外部引用&#xff0c;重定义&#xff0c;条件编译 #include <>:从系统路径&#xff08;/usr/include&#xff09;下查找 #include " "&am…

如何将Mysql数据库的表导出并导入到另外的架构

如何将Mysql数据库的表导出并导入到另外的架构 准备一、解决方法1.右键->导出->用mysqldump导出2.注意路径一般为&#xff1a;C:/Program Files/MySQL/MySQL Server 8.0/bin/mysqldump.exe和导出的sql文件位置3.右键->SQL脚本->运行SQL脚本4.找到SQL脚本并点击确定…

[moeCTF 2023] REV

逆向这东西&#xff0c;不太好说。 base64 这是个pyc文件&#xff08;python编译后的字节码文件&#xff09;&#xff0c;这东西可以直接用各种方法反编译。也可以不弄&#xff0c;必竟这应该签到级别的。用notepad打开&#xff0c;可以看到base64的编译和两个码表。显然猜是…

mac系统u盘启动盘制作教程,更新至macOS Sonoma 14

mac系统怎么制作装系统的u盘,如果您要在多台电脑上安装 macOS&#xff0c;而又不想每次都下载安装器&#xff0c;这时可引导安装器就会很有用。一起来看苹果电脑u盘启动盘制作教程吧。 Macos系统安装包合集包揽macos 10.15&#xff0c;macos 11和苹果最新系统等多个版本 1、A…

Windows 和 Linux 这2个系统在进行编程实现的时候的一些区别:

很惭愧&#xff0c;学了很多年才意识到&#xff0c;噢&#xff0c;原来这两个系统实现一些功能的时候会使用到不同的库&#xff0c;使用不同的函数。 那么&#xff0c;也会延伸出一些问题&#xff1a; 比如&#xff0c;如何实现版本的迁移。一个在Linux上运行的代码如何可以比…

Instant-NGP中的多分辨率哈希编码

Instant-NGP的出现&#xff0c;无疑给神经表达领域带来了新的生命力。可认为是NeRF诞生以来的关键里程碑了。首次让我们看到了秒级的重建、毫秒级的渲染的NeRF工作。 作为如此顶到爆的工作&#xff0c;Instant-NGP毫无疑问斩获SIGGRAPH 2022的最佳论文。虽然只是五篇最佳论文之…