vue实现网页端企业微信扫码登录功能(前端部分)

news2024/11/20 11:37:40

 时至今日,企业微信在企业日常工作中的使用越来越频繁也越来越重要,不少企业已使用企业微信进行着日常的工作安排管理。在这种背景下,各类系统和企业微信对接的需求也不断增加,今天要说的就是一个比较常见的需求:在网页前端实现扫描企业微信二维码进行系统登录。以下是vue框架下实现的方式,主要是前端部分。
 要完成这个需求主要有两点关键技术问题需要解决:一是如何在网页端产生企业微信的二维码。二是用户扫码完成后,如何知道是哪个用户扫的二维码,或者如何告诉后端哪个用户扫的二维码呢。我们一步步来说。

一.如何生成二维码

 详细介绍前先放一下官方文档的链接,毕竟无论怎么介绍还得是以官方为准。构造扫码登录链接。接下来是具体实现的步骤:

1. 引入JS文件
 在你的项目中找到public文件夹中的index.html文件,在代码中引入企业微信的js文件,加入以下代码即可:

<script src="http://wwcdn.weixin.qq.com/node/wework/wwopen/js/wwLogin-1.2.7.js"></script>

 注意下,引入的js文件其实是有不同版本的,截止2023年1月11日,官方给出的包的版本是1.2.7,但是在未来可能会有更新,引入前最好在官网中看一眼是不是最新版本。
在这里插入图片描述

2. 展示二维码
 在需要展示企业微信二维码的地方(一般是登录页),创建一块区域用来展示二维码,注意要给id值

<div id="login_container" style="height: 400px; width: 400px"></div>

 然后实例企业微信的JS对象,这里为方面展示,直接写在created()里面了,最好封装成一个方法。

created() {
    this.wwLogin = new WwLogin({
      id: 'login_container',
      appid: '', // 填你的企业微信企业id
      agentid: '', // 填你的自建应用id
      redirect_uri: '', // 填你的可信域名里的跳转链接,一定要有http或者https
      state: '',
      href: '',
      lang: 'zh'
    })
  }

 然后来讲一下参数,其中id,appid,agentid,redirect_uri,这四个必填,后面三个不填也能出二维码,如果有其他需要的话可以再详细了解。其中第一个id和我们创建出来展示的区域的id是要对应上的,不然二维码不知道展示到哪里。剩下三个参数就要在企业微信的管理后台里面拿了,如果这个时候有其他人能告诉你这三个值,那你直接运行就能看到二维码了。效果如下图:
在这里插入图片描述

 但如果开发者目前没有办法拿到这些值,或者是要创建一个新的企业的话,博主将在第三步展示如何配置并拿到这些参数。
 步骤二这里还有个小优化在这里分享下,在一些有一定代码规范要求的公司里,JS对象实例化完成后,代码会提示’WwLogin’ is not defined,虽然也能跑起来,但是看着还是会烦。这种情况下可以在.eslintrc.js文件中加入下面代码,再次运行即可:

globals: {
    'WwLogin': true
  }

3. 企业微信后台管理平台配置
 这一步里讲解下如何进行企业微信的后台管理设置,然后说一下哪里能够拿到第二步里缺失的三个必填值。首先需要登录企业微信后台管理平台,官方地址:企业微信。点击右上角的企业登录后,用企业微信扫码即可进入管理平台。这里要注意下,只有企业的管理员角色才能登录进入管理平台,如果一个开发人员没有权限的话,需要找人扫码或者让管理员帮忙赋予权限。如果没有企业或者想先弄一个测试组织自己先测试一下的话,可以在企业微信的app端上以个人为主体创建一个企业组织。
在这里插入图片描述

 登录上的管理平台如下图:
在这里插入图片描述
 然后在“我的企业”下方找到企业id,这个就是第二步中的appid参数。

在这里插入图片描述

 在应用管理里面创建一个自建应用,然后点进去,里面有个AgentId,这个就是第二步中的agentid参数。
在这里插入图片描述
在这里插入图片描述

 然后在这个页面中,滚动条滚到最下方,找到“企业微信授权登录”,点击“设置”,点击“设置授权回调域”,填入回调的地址,这个就是第二步中的redirect_uri参数,当然回调地址后面还能拼接其他路由地址,但是域名和端口号必须和配置中一致。
在这里插入图片描述
在这里插入图片描述
 以上就是企业微信管理平台的主要配置,将这些配置加上后,就能在前端看到二维码了。

二.如何知道是哪个用户登录

 前面讲解了如何生成二维码后,这里讲一下如何知道是哪个用户扫码登录的。在用户扫码完成,并点击确认登录后,企业微信会带着参数返回redirect_uri配置的地址,下面是一段我用来测试返回的路径:

http://test.com/wechatAuth?code=x4Wie3KgsS3_311mrsiB_WdC1MzsJ&appid=wwcffb38

 其中http://test.com/wechatAuth这一段是我配置的redirect_uri,而后面code中的值就是相当于我这个登录人的身份标识,我们需要这样this.$route.query.code截取下来,获取到code的值并将其传给后端,后端根据企业微信的相关接口:https://qyapi.weixin.qq.com/cgi-bin/auth/getuserinfo?access_token=ACCESS_TOKEN&code=CODE最终拿到用户的userid,知道userid后就能确定登录用户的身份,从而给前端返回登录用户的身份信息,前端就可以完成登录了。

 总结:本篇文章主要是介绍前端通过vue实现网页端企业微信扫码登录的功能,确实有一点的局限性,没有将后端部分的内容介绍出来。但通过文章前面介绍的内容,前端开发人员能很轻易实现企业微信扫码登录的功能,后续如果有时间看能不能介绍一下后端方面在登录时做的操作,希望这篇文章能够帮到大家,谢谢!

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

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

相关文章

第08讲:Docker中的网络类型bridge和host

Docker 中的网络模式早先是 3 种&#xff0c;后来又加了 1 种&#xff0c;一共是 4 种。这里&#xff0c;我们只涉及、介绍使用其中 2 种网络模式&#xff1a;bridge 模式和 host 模式。 bridge 是驱动&#xff08; Driver &#xff09;类型为 bridge 的默认网络&#xff1b;h…

『 MySQL篇 』:库操作、数据类型

目录 目录 一、初识数据库 数据库 数据库管理系统 SQL语言 二、详解MySQL MySQL 存储引擎 三、简单的库操作 设置数据库的编码字符集 创建数据库 显示数据库 使用数据库 删除数据库 四、MySQL数据类型 数值类型 字符串类型 日期类型 一、初识数据库 学习 MyS…

SpringBoot整合ELK教程

SpringBoot整合ELK教程 1 基础概念 ELK 即 Elasticsearch、Logstash、Kibana&#xff0c;组合起来可以搭建线上日志系统&#xff0c;本文主要讲解使用 ELK 来收集测试框架产生的日志。 Elasticsearch&#xff1a;用于存储收集到的日志信息&#xff1b;Logstash&#xff1a;用于…

如何成为优秀合格的管理者之角色定位

目录 导语 一、管理者的角色误区和角色定位 &#xff08;一&#xff09;管理者对上级 &#xff08;二&#xff09;管理者对下属 *如何要做好“老师”的角色&#xff1f; &#xff08;三&#xff09;管理者跨部门协作 &#xff08;四&#xff09;管理者对自己 二…

springboot:接手老项目,领导让更新数据库说明文档,如何3分钟完成任务

0 引言 最新在重新整理老项目的文档&#xff0c;其中数据库说明文档上一版更新还是在1年多前&#xff0c;文档中的数据结构说明与当前数据库严重脱节&#xff0c;所以更新数据库说明文档已经是迫在眉睫的事情了。 因为项目是一个比较大型且“年长‘的项目&#xff0c;涉及了多…

谷粒商城-基础篇-Day09-整合Ware服务

整合Ware服务 将服务注册到nacos中 spring:cloud:nacos:discovery:server-addr: 127.0.0.1:8848application:name: gulimall-wareMapperScan("com.atguigu.gulimall.ware.dao")//mybatis包扫描 SpringBootApplication EnableDiscoveryClient//开启服务发现 EnableT…

进入内存,透彻理解数据类型存在的意义,整形在内存中存储,大小端字节序,浮点型在内存中存储

&#x1f331;博主简介&#xff1a;是瑶瑶子啦&#xff0c;一名大一计科生&#xff0c;目前在努力学习C进阶、数据结构、算法、JavaSE。热爱写博客~正在努力成为一个厉害的开发程序媛&#xff01;&#x1f4dc;所属专栏&#xff1a;C语言✈往期博文回顾&#xff1a;【Java基础篇…

Java——》AtomicInteger源码分析

推荐链接&#xff1a; 总结——》【Java】 总结——》【Mysql】 总结——》【Redis】 总结——》【Kafka】 总结——》【Spring】 总结——》【SpringBoot】 总结——》【MyBatis、MyBatis-Plus】 Java——》AtomicInteger源码分析一、测试用例二、…

Java基础学习笔记(一)面向对象

序言&#xff1a;主要记录一下java的学习笔记&#xff0c;用作面试复习&#xff0c;参考的学习资料是尚硅谷Java网课链接 面向对象是P39~P69内容 文章目录一、类和对象二、传值方式三、静态与静态代码块四、包五、构造方法六、继承与构造方法七、多态八、方法的重载与重写8.1 …

[JAVA安全]CVE-2022-33980命令执行漏洞分析

前言 在 i春秋的漏洞靶标上看见了此漏洞&#xff0c;所以前来分析一下漏洞原理&#xff0c;比较也是去年 7月的漏洞。 漏洞描述&#xff1a;Apache官方发布安全公告&#xff0c;修复了一个存在于Apache Commons Configuration 组件的远程代码执行漏洞&#xff0c;漏洞编号&am…

Linux驱动

Linux驱动 驱动 1.驱动课程大纲  内核模块  字符设备驱动  中断 2.ARM裸机代码和驱动有什么区别&#xff1f;  共同点&#xff1a;都能够操作硬件 (都操作寄存器)  不同点&#xff1a;  裸机就是用C语言给对应的寄存器里面写值&#xff0c;驱动是按照一定的框架格…

FastReport .NET 2023.1.8 Crack

FastReport .NET适用于 .NET 6、.NET Core、Blazor、ASP.NET、MVC 和 Windows 窗体的全功能报告库。它可以在 Microsoft Visual Studio 2022 和 JetBrains Rider 中使用。 快速报告.NET 利用 .NET 6、.NET Core、Blazor、ASP.NET、MVC、Windows Forms 和 Mono 数据表示领域专家…

前端入门笔记07 —— js应用

DOM基础 document object model 基本操作 增删改查 查&#xff1a; document成员函数传入 id class tagName等内容获取DOM节点css选择去查询节点获取的DOM对象访问DOM对象的成员 let domResult; domResult document.getElementsByTagName(li); //返回一个类数组对象 Node…

Electron对在线网站做数据交互方案,实现在线网站判断Electron调用自定义接口通讯

(防盗镇楼)本文地址:https://blog.csdn.net/cbaili/article/details/128651549 前言 最近在撸VUE,想要实现一份代码既能构建Web又能构建Electron应用 并且能够判断环境是浏览器还是Electron,随后在Electron中做一些特定的事情 以往的Electron通信依靠IPC通信完成,但是发布到…

2023年,“新一代”固定资产管理平台——支持低代码平台

固定资产是各企业和工厂的主要生产要素&#xff0c;占企业整体资金比例较重&#xff0c;而且随着企业的发展&#xff0c;实物资产的数量和员工日益增多&#xff0c;固定资产的重要性日益凸显。如何高效管理这些实物资产也成了企业管理者经常考虑的问题。单纯依靠人工表格管理固…

python(一) 字符串基本用法

python&#xff08;一&#xff09; 字符串基本用法 目录1.环境安装2. 变量介绍3.变量的命名规则4. 字符串 String 基础4.1 title() 修改单词的大小写 title()4.2 upper() : 将字符串全部改为大写4.3 lower(): 将字符串全部改为小写4.4 字符串的拼接 合并字符串5. 使用制表符或者…

关于抖音年前活动的需求与思考

目录 一、前言 二、需求1 1、后端需求 2、前端需求 三、领取抽卡次数需求 1、后端需求 2、前端需求 四、必得现金红包需求 五、送重复卡需求 1、后端需求 2、前端需求 六、幸运抽奖需求 1、抽奖功能 1.1、首次(或多次)3张节气卡 抽奖 1.2、非首次或多次后5张节气…

【阶段三】Python机器学习14篇:机器学习项目实战:支持向量机分类模型

本篇的思维导图: 项目实战(支持向量机分类模型) 项目背景 目前各大新闻网站很多,网站上的消息也是各式各样,本项目通过建立支持向量机分类模型进行新闻文本分类。 数据收集 所需要的数据文件如下百度云盘链接: 链接:https://pan.baidu.com/s/1Zj-uTt_wdRcmDt3aumZ…

Java加解密(七)数字签名

目录数字签名1 定义2 数字签名特点3 应用场景4 JDK支持的信息摘要算法5 Bouncy Castle 支持的信息摘要算法6 算法调用示例数字签名 1 定义 数字签名&#xff08;digital signature&#xff09;是一种电子签名&#xff0c;也可以表示为一种数学算法&#xff0c;通常用于验证消…

【强训】Day06

努力经营当下&#xff0c;直至未来明朗&#xff01; 文章目录一、选择二、编程1. 不要二2. 把字符串转换成整数答案1. 选择2. 编程普通小孩也要热爱生活&#xff01; 一、选择 关于抽象类与最终类&#xff0c;下列说法错误的是&#xff1f; A 抽象类能被继承&#xff0c;最终…