vue 实现微信扫码登录的方法

news2024/11/27 2:16:35

 

一、准备工作: 1.微信公众号,扫码登录 2.域名,也就是域名解析(public_domain) 3.微信登录验证 4.配置微信扫码登录页面的代码,有了上面的准备工作,下面就可以开始编码了。 二、开发环境: 1. vue项目开发环境 2. Vue组件开发环境: Vue项目开发工具 3.微信登录接口:微信扫码登录接口、微信二维码登录接口(这个需要你自己去定义) 三、前端实现: 1.扫码界面的输入框:在 vue中实现输入框,这个需要自己去定义,主要是通过属性来实现的,我们需要给输入框加一个属性叫v-input:`=''。这个属性可以让我们把用户的信息放到一个输入框中。然后在我们的前端页面上使用这个属性就可以实现用户输入信息了。 2.微信扫码界面:在前端页面上使用v-input来获取用户的信息,这里使用的是 requests. loaderXML ()方法来获取。这里需要注意一下,我们在获取用户的信息时,不能直接从浏览器中获取到,因为这样会导致浏览器缓存到数据库中,我们需要把用户信息先写到一个变量中,然后再放到 requests. loaderXML ()方法中去。这样我们就可以从数据库中获取到用户的信息了。

  • 一、微信扫码登录验证:在微信公众号中创建一个界面,然后使用 devops组件配置该界面的数据,然后调用 submit ()方法获取用户的信息

    1.微信扫码登录接口就是通过 vue项目的 tomcat模块实现的,我们首先需要先创建一个 tomcat模块,然后将我们刚刚配置好的数据存储在 tomcat模块中,然后再传入 vue的 submit ()方法获取用户的信息。我们只需要将用户的信息写到 vue中即可。 2.微信二维码登录接口:这个就是通过微信公众号中的二维码来实现的,我们在扫码登录后,需要先把用户的信息发送给微信公众号,然后再由微信公众号向微信后台发送对应用户信息。这里需要注意一下,我们在发送二维码时,不能直接从浏览器中获取到用户的信息,我们需要先把用户的信息写到一个变量中再发送给微信公众号。

    • 1、在 vue项目中创建一个 tomcat模块,然后把用户信息写到 tomcat中,然后传入 submit ()方法获取用户的信息。

      当我们把用户的信息写到 tomcat模块中后,我们就可以把这条用户信息发送给微信公众号了,我们只需要使用 devops组件来配置数据的路径即可。 3.微信扫码登录接口:这个是通过 devops组件实现的,我们只需要在微信公众号中创建一个界面,然后使用 devops组件配置该界面的数据,然后调用 submit ()方法获取用户的信息。 然后调用 submit ()方法获取用户信息。

    • 2、在 vue项目中创建一个 devops组件,然后把微信扫码登录接口的代码传到 devops组件中,最后在 devops组件中调用 submit ()方法获取用户的信息。

      我们在浏览器中把用户的信息写到变量中,然后使用vue.ini文件传给微信公众号即可。

  • 二、微信二维码登录验证:在扫码登录页面中配置这个接口,然后使用 requests. loaderXML ()方法获取用户的信息

    这里需要注意的是,如果我们只是单纯的扫码登录,我们不需要配置 requests. loaderXML ()方法,因为我们不需要从数据库中获取用户的信息,因为我们在请求用户的时候,都会先把用户的信息存储在数据库中,然后再返回给服务器。 1.后台实现:主要是对前端页面做一些操作,比如说修改微信公众号的文章内容、发送朋友圈等。 2.后台获取用户信息:我们在扫码登录界面中配置这个接口时,需要自己去定义这个接口,在后台获取用户的信息时,就需要使用到 requests. loaderXML ()方法了。 五、最后输出结果: (上面我们是先把用户信息放到变量中去再获取的)。 六、测试: 1.测试效果:在这一步时,我们需要同时调用两个接口来进行测试,一个是扫码登录接口、一个是二维码登录接口。在这两个接口中我们都需要先获取到用户信息后才能发送给服务器。其中扫码登录接口和二维码登录接口是相互独立的两个接口,因此我们只需要使用一个就可以了。下面我们就来测试一下这两个接口是否能够正常工作。 2.测试结果: 七、总结: 1.在 Vue中实现微信扫码登录接口是很简单的,只要你在前端页面上配置好这个接口就可以了。但是需要注意的是,我们在配置这个接口时一定要先获取到用户信息再进行下一步操作。因为在我们的后台页面上有很多数据是不能直接从数据库中获取到的,需要我们先把数据先写到一个变量中去,然后再使用 requests. loaderXML ()方法获取用户信息。 但是在扫码登录和二维码登录中都需要先获取到用户信息再进行下一步操作。

  • 三、微信扫码登录结果页面:将配置好的代码在微信扫码登录页面上进行展示,实现了用户扫码登录

    1.登录界面 3.微信扫码登录结果页面 微信公众号是目前使用最广泛的第三方开发平台,所以我们要用到它,就需要把它注册下来,然后我们再进行开发,也就是需要获取域名、配置微信扫码登录接口等。在进行微信扫码登录时,我们需要用到扫码登录接口、用户信息输入框等。最后在前端页面上展示出用户扫码登录结果。 六、我的收获: 1.学会了 Vue组件开发的一些基本知识。 2.学会了如何配置微信扫码登录接口。 3.学会了如何去使用 vue中的各种属性。这两天我把学到的知识都用上了,通过配置微信扫码登录接口和用户信息输入框,实现了微信扫码登录结果页面的展示,也算是不负所学了。

以下是一个简单的 Vue.js 组件,用于实现微信扫码登录:
```
<template>
<div>
<div v-if="!isLogged">
<div ref="qrcode"></div>
</div>
<div v-else>
<p>已登录</p>
</div>
</div>
</template>
<script>
import QRCode from 'qrcode'
export default {
data() {
return {
isLogged: false,
loginUrl: '',
timer: null
}
},
mounted() {
this.getQrcode()
},
methods: {
getQrcode() {
// 发送请求获取登录二维码的 URL
axios.get('/api/getQrcode').then(res => {
this.loginUrl = res.data.url
// 生成二维码
QRCode.toCanvas(this.$refs.qrcode, this.loginUrl, {
width: 200,
height: 200
})
// 轮询检查登录状态
this.timer = setInterval(() => {
this.checkLoginStatus()
}, 2000)
})
},
checkLoginStatus() {
// 发送请求检查登录状态
axios.get('/api/checkLoginStatus').then(res => {
if (res.data.isLogged) {
this.isLogged = true
clearInterval(this.timer)
}
})
}
}
}
</script>
```
这个组件会在 `mounted` 钩子函数中发送请求获取登录二维码的 URL,并使用 `qrcode` 库生成二维码。然后,它会每隔 2 秒钟发送一次请求检查登录状态,直到用户扫描二维码并完成登录。一旦用户完成登录,组件会显示“已登录”的文本。

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

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

相关文章

pinia的用法,一篇文章教你搞懂vuex的继任者pinia

一&#xff1a;pinia是什么&#xff1f; Pinia 是一个轻量级的、易于使用的 Vue.js 状态管理库。它是 Vuex 的一个替代方案&#xff0c;专为 Vue 3 设计&#xff0c;提供了更简单的 API 和更好的 TypeScript 支持。在你提供的代码中&#xff0c;Pinia 被用于管理应用程序的状态…

VAO、VBO、EBO简介

1.顶点缓冲对象(Vertex Buffer Objects, VBO) 顶点缓冲对象&#xff08;VBO&#xff09;的作用就是管理这个在GPU上创建的显存。使用这些缓冲对象的好处是我们可以一次性的发送一大批数据到显卡上&#xff0c;而不是每个顶点发送一次。从CPU把数据发送到显卡相对较慢&#xff…

java.security.MessageDigest的用法

java.security.MessageDigest MessageDigest的含义 message含义是:消息,信息 digest的含义是 digest 必应词典 n.摘要&#xff1b;文摘&#xff1b;概要&#xff1b;汇编 v.消化&#xff1b;领会&#xff1b;领悟&#xff1b;理解 海词 n. 摘要 vt. 消化&#xff1b;理解 vi…

进制转换(及规律)

Java变量命名规则和前端一样 约束 接口使用大驼峰 变量方法小托福 常量全大写 数值类型的 整型 byte a 1 所占空间1字节&#xff08;-128-127&#xff09; short a 1 所占空间2字节&#xff08;-32768-32767&#xff09;2^15-2^15-1 int a 1 所占空间4…

2023 华为 Datacom-HCIE 真题题库 11/12--含解析

单项选择题 1.[试题编号&#xff1a;190685] &#xff08;单选题&#xff09;通过iMasterNCE-Campus部署的虚拟化园区网络场景中&#xff0c;以下关于“添加设备”的描述中&#xff0c;错误的是哪一项&#xff1f; A、IMaster NCE-Campus支持通过设备角色添加设备 B、IMaster …

装饰器Python】进阶知识点

要明白装饰器首先得知道闭包 闭包&#xff1a;是内部函数对外部函数作用域的引用&#xff0c;并且一般外部函数函数的返回值是内部函数的函数名 def outer(x): # 外部函数 a x * 2 def inter(b) # 内部函数 …

手撕数据结构—单链表

✅作者&#xff1a;简单^不简单 &#x1f525;系列专栏&#xff1a;C语言数据结构 &#x1f496;如果文章有错误&#xff0c;时刻欢迎大家的指正。当然觉得博主的文章还不错的话&#xff0c;请点赞&#x1f44d;收藏⭐️留言&#x1f4dd; &#x1f4ac;格言&#xff1a;希望我…

设计模式之-模板方法模式C++实现与C++模板template用法

介绍 模板方法模式使用比较常见&#xff0c;也比较简单&#xff0c;模板方法模式是属于设计模式中的行为设计模式。行为设计模式是关注对象的行为或者交互方面的内容&#xff0c;主要涉及算法和对象之间的职责分配。 模板方法模式使用场景&#xff1a;在设计需求中&#xff0c;…

java并发编程:synchronized关键字与锁详解

文章目录 线程安全问题synchroinzed关键字几种锁Java对象头偏向锁轻量级锁自旋锁重量级锁锁升级的场景 JVM 是如何实现 synchronized 的&#xff1f;小结 这篇文章我们来聊一聊Java多线程里面的“锁”。 首先需要明确的一点是&#xff1a;Java多线程的锁都是基于对象的&#x…

御用飞场之惊险炸鸡寻根溯源

御用飞场之惊险炸鸡寻根溯源 1. 源由2. 分析3. 证据4. 总结5. 补充&#xff1a;BetaFlight Mark4 自锁螺母桨叶松动 炸机瞬间 1. 源由 这个炸鸡的原因千奇百怪&#xff0c;不过最终的结果都是相似的。 如果能很好的找到根原因&#xff0c;相对来说&#xff0c;今后炸鸡的概…

element-ui表格el-table的使用

先给大家展示一下效果 Table 属性 属性名说明类型可选值默认值data显示的数据array——heightTable 的高度&#xff0c; 默认为自动高度。 如果 height 为 number 类型&#xff0c;单位 px&#xff1b;如果 height 为 string 类型&#xff0c;则这个高度会设置为 Table 的 sty…

初阶指针(详解)

目录 前言 一 指针是什么 计算机又是如何编址的&#xff1f; 总结 二 指针和指针类型 指针-整数 总结&#xff1a; 指针的解引用 总结 三 野指针 概念 野指针的成因 1. 指针未初始化 2. 指针越界访问 3. 指针指向的空间被释放 如何规避野指针 四 指针运算…

iMazing2.16.9中文最新版iOS设备管理器下载教程

iMazing2.16.9是一款兼容Win和Mac的iOS设备管理软件。iMazing能够将音乐、文件、消息和应用等数据从任何 iPhone、iPad 或 iPod 传输到 Mac 或 PC 上。iMazing轻松管理和备份您的 iOS 设备,无需使用 iTunes&#xff0c;iMazing以自己的方式管理 iPhone。让备受信赖的软件为您传…

遗传算法(附简单案例及matlab详细代码)

作者&#xff1a;非妃是公主 专栏&#xff1a;《智能优化算法》 博客地址&#xff1a;https://blog.csdn.net/myf_666 个性签&#xff1a;顺境不惰&#xff0c;逆境不馁&#xff0c;以心制境&#xff0c;万事可成。——曾国藩 文章目录 专栏推荐序一、生物进化二、遗传算法原…

华为OD机试真题 Java 实现【按身高和体重排队】【2022Q4 100分】,附详细解题思路

一、题目描述 某学校举行运动会&#xff0c;学生们按编号(1、2、3…n)进行标识&#xff0c;现需要按照身高由低到高排列&#xff0c;对身高相同的人&#xff0c;按体重由轻到重排列&#xff1b; 对于身高体重都相同的人&#xff0c;维持原有的编号顺序关系。请输出排列后的学生…

全闪SDS三节点EC(4+2:1)性能挑战测试

前段时间咱们存储圈在讨论一下全闪SDS性能挑战&#xff1a; 三节点集群&#xff0c;用EC&#xff08;42:1&#xff09;&#xff0c;性能目标是&#xff1a;4KB随机读写7:3&#xff0c;达到100万IOPS&#xff0c;平均时延0.5ms&#xff0c;P99时延1ms。硬件配置&#xff1a;网络…

菜鸟的刷题之路之二叉树

&#x1f495;“成功不是终点&#xff0c;失败不是终结&#xff0c;勇气才是启程的第一步。”&#x1f495; &#x1f43c;作者&#xff1a;不能再留遗憾了&#x1f43c; &#x1f386;专栏&#xff1a;菜鸟的刷题之路&#x1f386; &#x1f697;本文章主要内容&#xff1a;将…

GORM---创建

目录 模型定义使用Create创建记录一次性创建多条数据批量插入数据时开启事务默认值问题 模型定义 定义一个PersonInfo结构体。 type PersonInfo struct {Id uint64 gorm:"column:id;primary_key;NOT NULL" json:"id"UserName string gorm:"co…

路径规划算法:基于狮群优化的路径规划算法- 附代码

路径规划算法&#xff1a;基于狮群优化的路径规划算法- 附代码 文章目录 路径规划算法&#xff1a;基于狮群优化的路径规划算法- 附代码1.算法原理1.1 环境设定1.2 约束条件1.3 适应度函数 2.算法结果3.MATLAB代码4.参考文献 摘要&#xff1a;本文主要介绍利用智能优化算法狮群…

Prometheus+Grafana(外)监控Kubernetes(K8s)集群(基于containerd)

一、实验环境 1、k8s环境 版本v1.26.5 二进制安装Kubernetes(K8s)集群(基于containerd)—从零安装教程&#xff08;带证书&#xff09; 主机名IP系统版本安装服务master0110.10.10.21rhel7.5nginx、etcd、api-server、scheduler、controller-manager、kubelet、proxymaster021…