广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >VuePC端实现扫码登录功能示例代码
  • 219
分享到

VuePC端实现扫码登录功能示例代码

VuePC端扫码登录Vue扫码登录vue登录功能 2023-01-28 12:01:15 219人浏览 安东尼
摘要

目录需求描述思路解析前端功能实现如何控制二维码的时效性?前端如何获取服务器二维码的状态?本篇文章给大家带来了关于Vue的相关知识,其中主要介绍了在PC端实现扫码的原理是什么?怎么生成

本篇文章给大家带来了关于Vue的相关知识,其中主要介绍了在PC端实现扫码的原理是什么?怎么生成二维码图片?怎么用Vue实现前端扫码登录?感兴趣的朋友,下面一起来看一下吧,希望对大家有帮助。

需求描述

目前大多数PC端应用都有配套的移动端APP,如微信,淘宝等,通过使用手机APP上的扫一扫功能去扫页面二维码图片进行登录,使得用户登录操作更方便,安全,快捷。

思路解析

PC 扫码原理?

扫码登录功能涉及到网页端、服务器和手机端,三端之间交互大致步骤如下:

  • 网页端展示二维码,同时不断的向服务端发送请求询问该二维码的状态;
  • 手机端扫描二维码,读取二维码成功后,跳转至确认登录页,若用户确认登录,则服务器修改二维码状态,并返回用户登录信息;
  • 网页端收到服务器端二维码状态改变,则跳转登录后页面;
  • 若超过一定时间用户未操作,网页端二维码失效,需要重新刷新生成新的二维码。

前端功能实现

如何生成二维码图片?

  • 二维码内容是一段字符串,可以使用uuid 作为二维码的唯一标识;
  • 使用qrcode插件 import QRCode from 'qrcode'; 把uuid变为二维码展示给用户
import {v4 as uuidv4} from "uuid"
import QRCode from "qrcodejs2"
 let timeStamp = new Date().getTime() // 生成时间戳,用于后台校验有效期
 let uuid = uuidv4()
 let content = `uid=${uid}&timeStamp=${timeStamp}`
 this.$nextTick(()=> {
     const qrcode = new QRCode(this.$refs.qrcode, {
       text: content,
       width: 180,
       height: 180,
       colorDark: "#333333",
       colorlight: "#ffffff",
       correctLevel: QRCode.correctLevel.H,
       render: "canvas"
     })
     qrcode._el.title = ''

如何控制二维码的时效性?

使用前端计时器setInterval, 初始化有效时间effectiveTime, 倒计时失效后重新刷新二维码

export default {
  name: "qrCode",
  data() {
    return {
      codeStatus: 1, // 1- 未扫码 2-扫码通过 3-过期
      effectiveTime: 30, // 有效时间
      qrCodeTimer: null // 有效时长计时器
      uid: '',
      time: ''
    };
  },
  methods: {
    // 轮询获取二维码状态
    getQcodeStatus() {
      if(!this.qsCodeTimer) {
        this.qrCodeTimer = setInterval(()=> {
          // 二维码过期
          if(this.effectiveTime <=0) {
            this.codeStatus = 3
            clearInterval(this.qsCodeTimer)
            this.qsCodeTimer = null
            return
          }
          this.effectiveTime--
        }, 1000)
      }
    },
    // 刷新二维码
    refreshCode() {
      this.codeStatus = 1
      this.effectiveTime = 30
      this.qsCodeTimer = null
      this.generateORCode()
    }
  },

前端如何获取服务器二维码的状态?

前端向服务端发送二维码状态查询请求,通常使用轮询的方式

  • 定时轮询:间隔1s 或特定时段发送请求,通过调用setInterval(), clearInterval()来停止;
  • 长轮询:前端判断接收到的返回结果,若二维码仍未被扫描,则会继续发送查询请求,直至状态发生变化(失效或扫码成功)websocket:前端在生成二维码后,会与后端建立连接,一旦后端发现二维码状态变化,可直接通过建立的连接主动推送信息给前端。

使用长轮询实现:

// 获取后台状态
   async checkQRcodeStatus() {
      const res = await checkQRcode({
        uid: this.uid,
        time: this.time
      })
      if(res && res.code == 200) {
        let codeStatus - res.codeStatus
        this.codeStatus =  codeStatus
        let loginData = res.loginData
        switch(codeStatus) {
          case 3:
             console.log("二维码过期")
             clearInterval(this.qsCodeTimer)
             this.qsCodeTimer = null
             this.effectiveTime = 0
           break;
           case 2:
             console.log("扫码通过")
             clearInterval(this.qsCodeTimer)
             this.qsCodeTimer = null
             this.$emit("login", loginData)
           break;
           case 1:
             console.log("未扫码")
             this.effectiveTime > 0  && this.checkQRcodeStatus()
           break;
           default:
           break;
        }
      } 
   },

到此这篇关于Vue PC端如何实现扫码登录功能的文章就介绍到这了,更多相关Vue PC端扫码登录内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: VuePC端实现扫码登录功能示例代码

本文链接: https://www.lsjlt.com/news/178451.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • VuePC端实现扫码登录功能示例代码
    目录需求描述思路解析前端功能实现如何控制二维码的时效性?前端如何获取服务器二维码的状态?本篇文章给大家带来了关于Vue的相关知识,其中主要介绍了在PC端实现扫码的原理是什么?怎么生成...
    99+
    2023-01-28
    Vue PC端扫码登录 Vue 扫码登录 vue登录功能
  • SpringBoot实现扫码登录的示例代码
    目录一、首先咱们需要一张表二、角色都有哪些三、接口都需要哪些?四、步骤五、疯狂贴代码Spring Boot中操作WebSocket最近有个项目涉及到websocket实现扫码登录,看...
    99+
    2022-11-13
  • uniapp实现钉钉扫码登录示例代码
    由于uniapp暂无钉钉授权登录所以本文将钉钉扫码登录作为网页嵌入uniapp,最终实现钉钉扫码登录app 1. 用H5调起钉钉扫码登录 钉钉在网页端的扫码登录可参考钉钉文档:扫码登...
    99+
    2022-11-12
  • Vue PC前端扫码登录功能实现
    目录需求描述思路解析PC 扫码原理?前端功能实现如何生成二维码图片?如何控制二维码的时效性?前端如何获取服务器二维码的状态?参考资料:总结需求描述 目前大多数PC端应用都有配套的移动...
    99+
    2022-12-29
    vue扫码登录功能 vue登录功能 vue 扫码登录
  • python+selenium 实现扫码免密登录示例代码
    目录一、需求描述二、首先扫码登录获取cookies保存到本地未后面免密登录做准备三、初始化浏览器四、获取本地保存的cookies实现登录一、需求描述 web 自动化测试/python...
    99+
    2022-11-11
  • 基于Java实现扫码登录的示例代码
    目录基本介绍原理解析1. 身份认证机制2. 流程概述代码实现1. 环境准备2. 主要依赖3. 生成二维码4. 扫描二维码5. 确认登录6. PC 端轮询7. 拦截器配置效果演示1. ...
    99+
    2022-11-13
  • Vue PC端怎么实现扫码登录功能
    本文小编为大家详细介绍“Vue PC端怎么实现扫码登录功能”,内容详细,步骤清晰,细节处理妥当,希望这篇“Vue PC端怎么实现扫码登录功能”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。.markdown-bod...
    99+
    2023-07-05
  • Vue3+axios+Mock.js实现登录功能的示例代码
    目录前言一、Vue3 + Element Plus + Mock.js + axios实现登录功能1.登录页面配置路由、编写表单内容2.编写表单校验规则3.登录触发表单预验证4.Mo...
    99+
    2023-05-19
    Vue3 axios Mock.js登录 Vue3 axios Mock.js
  • 企业微信扫码登录网页功能实现代码
    企业微信扫码登录网页功能,代码如下所示: //jq写法完善版 <!DOCTYPE html> <html lang="en"> <head> ...
    99+
    2022-11-13
  • php怎么实现修改登录密码功能?(代码示例)
    在网站开发中,用户账号系统是必不可少的一部分,而安全性是其核心之一。为了保障用户的账号安全,提供修改登录密码的功能是非常必要的。实现这一功能需要编写一些代码,下面我们来了解一下如何编写修改登录密码的 PHP 代码。首先,我们需要建立一个修改...
    99+
    2023-05-14
  • 详解Vue PC端如何实现扫码登录功能
    本篇文章给大家带来了关于Vue的相关知识,其中主要介绍了在PC端实现扫码的原理是什么?怎么生成二维码图片?怎么用Vue实现前端扫码登录?感兴趣的朋友,下面一起来看一下吧,希望对大家有帮助。.markdown-body{word-break:...
    99+
    2023-05-14
    前端 Vue.js
  • SSM项目实现短信验证码登录功能的示例代码
    目录1.登入网站 zz短信平台2.导入工具类MessageUtil3.ajax 模块4. html页面5.编写controller层1.登入网站 zz短信平台 http:/...
    99+
    2022-11-13
  • Python实现录屏功能的示例代码
    目录一、界面开发二、录屏参数设置1.设置录屏范围2.鼠标事件监听3.键盘事件监听三、录屏操作一、界面开发 #设置主界面 def set_init_window(self): ...
    99+
    2023-03-24
    Python实现录屏功能 Python录屏功能 Python录屏
  • 基于Java实现QQ登录注册功能的示例代码
    目录前言实现代码登录页面注册页面效果展示前言 本文主要应用的技术有:GUI、JDBC、多线程 实现的功能具体如下: 1、登录功能 2、注册功能 3、是否隐藏密码的选择以及实现功能 4...
    99+
    2022-11-13
  • Python实现端口扫描器的示例代码
    目录socket概念 socket基本用法 创建tcp套接字 实现端口扫描 socket概念 socket又称套接字,可以看做是不同主机之间的进程进⾏双向通信的端点,简单的说就是通信的两⽅...
    99+
    2022-06-02
    Python 端口扫描器
  • SpringBoot实现token登录的示例代码
    为什么引入token机制 在进行登录验证时,我们需要session或cookie会话进行验证,客户端包括浏览器、app、微信小程序、公众号,只有浏览器有session和cookie机...
    99+
    2022-11-13
  • Spring Boot怎么实现微信扫码登录功能
    本文小编为大家详细介绍“Spring Boot怎么实现微信扫码登录功能”,内容详细,步骤清晰,细节处理妥当,希望这篇“Spring Boot怎么实现微信扫码登录功能”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一...
    99+
    2023-06-30
  • 基于Python实现录音功能的示例代码
    目录安装查找可用的麦克风录制音频将音频保存到文件今天我们来介绍一个好玩且实用的东西,我们使用python来实现一个录音的功能,废话不多说,让我们直接开始。 安装 使用 PIP 安装 ...
    99+
    2023-02-07
    Python实现录音功能 Python录音功能 Python录音
  • 如何使用PHP实现微信扫码登录功能
    随着移动互联网的快速发展,微信作为一种重要的社交工具,已经逐渐成为人们日常生活中必不可少的一个部分。在许多网站和应用程序中,微信登录功能已经成为了一种趋势,因为它可以让用户直接使用已有的微信账号来登录,不需要再创建新的账户,同时也能提供更便...
    99+
    2023-05-14
    微信扫码登录 php
  • 怎么使用PHP实现微信扫码登录功能
    这篇文章主要讲解了“怎么使用PHP实现微信扫码登录功能”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么使用PHP实现微信扫码登录功能”吧!一、准备工作在开始实现微信扫码登录功能之前,我们需...
    99+
    2023-07-05
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作