react + antDesignPro 企业微信扫码登录

效果

实现步骤

1、项目中document.ejs文件引入企微js链接

注意:技术栈是使用的react + antDesignPro,不同的技术栈有不同的入口文件(如vue在html文件引入)

<script src="https://wwcdn.weixin.qq.com/node/wework/wwopen/js/wwLogin-1.2.7.js"></script>
2、在登录页面放置二维码容器
<div id="ww_login"></div>
3、在登录页面生成二维码

注意:目前项目需求为进入页面就展示二维码,所以在React的useEffect中进行生成的,如果有其它交互可通过其它交互进行动态生成二维码

useEffect(() => {new WwLogin({id: 'ww_login',appid: 'wwa2d9444d52111111',agentid: '1000000',redirect_uri: encodeURIComponent('http://oa.zzmjart.com/user/login'),state: Date.now() + '1000000',});
}, []);
4、扫码完成后监听路由,处理登录逻辑

注意:目前跟后端约定交互为扫完二维码后跳转项目登录页面,登录页面路由上会拼接code,前端监听路由query里面是否有code,如有code拿到code去调后端接口换取token,后端返回token后进行储存token/跳转页面

import { history } from 'umi';useEffect(() => {if (history?.location?.query?.code) {qwLogin(history?.location?.query);}
}, [history]);const qwLogin = async (values) => {try {const msg = await cpLogin({ code: values.code });if (msg.code === 200) {message.success('登录成功!');localStorage.setItem('token', msg.data.token);const redirect = localStorage.getItem('redirect');if (redirect) {localStorage.setItem('redirect', '');location.href = location.origin + decodeURIComponent(redirect);} else {location.pathname = '/';}return;}console.log(msg); // 如果失败去设置用户错误信息} catch (error) {message.error('登录失败,请重试!');}
};

注:本人前端小白 ,如有不对的地方还请多多指教

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

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

相关文章

Maximum call depth exceeded 【解决】

Maximum call depth exceeded 【解决】 在前端开发中&#xff0c;Maximum call depth exceeded 是一个常见的错误信息&#xff0c;它通常与递归调用深度过深有关。当 JavaScript 引擎执行递归函数时&#xff0c;如果递归层次过多&#xff0c;会超出调用栈的最大深度&#xff0c…

离散制造 vs 流程制造:锚定精准制造未来,从装配线到化学反应,实时数据集成在制造业案例中的多维应用

使用 TapData&#xff0c;化繁为简&#xff0c;摆脱手动搭建、维护数据管道的诸多烦扰&#xff0c;轻量替代 OGG, Kettle 等同步工具&#xff0c;以及基于 Kafka 的 ETL 解决方案&#xff0c;「CDC 流处理 数据集成」组合拳&#xff0c;加速仓内数据流转&#xff0c;帮助企业…

了解变压器电压调节抽头

提供给变压器初级的电压可能与标称值不同。大多数公用事业公司将提供标称额定值 5% 以内的电压&#xff1b;但是&#xff0c;设施内的电压下降可能会导致提供给变压器的实际电压低于标称值 5% 以上。公用事业供应也可能有所不同。向变压器初级提供与额定初级电压不同的电压会导…

从零手写大模型,零基础入门到精通,收藏这一篇就够了

这里为从零手写大模型的实战课程介绍。 1、课程定位 如果你想成为真正懂 AI、可以写代码进行 AI 模型开发、对大模型的底层技术很了解的技术性人才&#xff0c;就来这里从零学习手写大模型吧。 本课程适合以下的同学&#xff1a; 1、希望从事AI 算法开发、大模型开发的同学…

基于yolov8的红外小目标无人机飞鸟检测系统python源码+onnx模型+评估指标曲线+精美GUI界面

【算法介绍】 基于YOLOv8的红外小目标无人机与飞鸟检测系统是一项集成了前沿技术的创新解决方案。该系统利用YOLOv8深度学习模型的强大目标检测能力&#xff0c;结合红外成像技术&#xff0c;实现了对小型无人机和飞鸟等低空飞行目标的快速、准确检测。 YOLOv8作为YOLO系列的…

提升自闭症教育:探索寄宿学校的创新实践

在特殊教育领域中&#xff0c;自闭症儿童的教育与康复一直是一个复杂而重要的课题。随着教育理念的进步和康复技术的不断发展&#xff0c;越来越多的创新实践被应用于自闭症儿童的教育中。其中&#xff0c;广州的星贝育园自闭症儿童寄宿制学校以其独特的教育模式和全方位的康复…

(已解决)vscode如何传入argparse参数来调试/运行python程序

文章目录 前言调试传入参数运行传入参数延申 前言 以前&#xff0c;我都是用Pycharm专业版的&#xff0c;由于其好像在外网的时候&#xff0c;不能够通过VPN来连接内网服务器&#xff0c;我就改用了vscode。改用了之后&#xff0c;遇到一个问题&#xff0c;调试或者运行python…

低代码门户技术:构建高效应用的全新方式

什么是低代码门户技术&#xff1f; 低代码门户技术是一种利用低代码平台构建企业门户网站或应用的技术。门户通常是企业内部和外部用户访问信息和应用的集中平台。低代码门户技术通过图形化界面和预置组件&#xff0c;允许用户快速搭建和定制这些门户平台&#xff0c;而无需深…

直播开播极速流,如何有效接入?

如何有效接入开播极速流&#xff1f;为什么你的直播流速会逐渐下降&#xff1f;开播极速流实际上是我们流速的巅峰阶段&#xff0c;这一阶段的流量构成通常是70%的老粉丝和30%的新粉丝。你是否意识到这一点呢&#xff1f; 在直播开始时&#xff0c;欢迎新老粉丝的互动很重要。比…

用户流失不再是问题,Xinstall助你实现App推广新突破!

在App推广的道路上&#xff0c;我们总会遇到各种各样的挑战。裂变营销难做、用户流失率大、推广流程让用户反感……这些问题是否也曾让你苦恼不已&#xff1f;别担心&#xff0c;今天我们就来揭秘一个神器——Xinstall&#xff0c;看看它是如何助力App拉新推广&#xff0c;打破…

功能测试干了三年,快要废了。。。

8年前刚进入到IT行业&#xff0c;到现在学习软件测试的人越来越多&#xff0c;所以在这我想结合自己的一些看法给大家提一些建议。 最近聊到软件测试的行业内卷&#xff0c;越来越多的转行和大学生进入测试行业&#xff0c;导致软件测试已经饱和了&#xff0c;想要获得更好的待…

Git使用教程-将idea本地文件配置到gitte上的保姆级别教程

&#x1f939;‍♀️潜意识起点&#xff1a;个人主页 &#x1f399;座右铭&#xff1a;得之坦然&#xff0c;失之淡然。 &#x1f48e;擅长领域&#xff1a;前端 是的&#xff0c;我需要您的&#xff1a; &#x1f9e1;点赞❤️关注&#x1f499;收藏&#x1f49b; 是我持…

3步轻松定制报价方案,亿发商城报价神器你用过了吗?

如果您正寻求突破传统业务模式的束缚&#xff0c;希望拥抱数字化转型带来的无限可能&#xff0c;我们诚邀您体验亿发软件。亿发专业团队将为您提供个性化的咨询和定制服务&#xff0c;帮助您的企业快速适应市场变化&#xff0c;实现业务模式和商业模式的创新。

数据结构与算法——顺序表期末复习五大经典题型

目录 一&#xff1a;顺序表-移除元素 二&#xff1a;顺序表-删除有序数组中的重复项 三&#xff1a;顺序表-合并两个有序数组 四&#xff1a;顺序表-旋转数组 五&#xff1a;顺序表-数组形式的整数加法 一&#xff1a;顺序表-移除元素 题型链接&#xff1a;27. 移除元素 -…

你了解什么是场外期权吗?

今天期权懂带你了解你了解什么是场外期权吗&#xff1f;场外期权是指在交易所之外进行交易的期权合约。这类期权通常是由买卖双方通过私人协议进行交易&#xff0c;而不是在标准化的交易所上进行。 场外期权的特点 1.定制化&#xff1a;场外期权合约可以根据交易双方的具体需…

详解RFM模型

详解RFM模型 一、定义二、RFM模型的三个指标1‌、最近一次消费&#xff08;Recency&#xff09;‌2、消费频率&#xff08;Frequency&#xff09;‌3、消费金额&#xff08;Monetary&#xff09;‌ 三、RFM模型的应用和分类1、精细化营销2、提升客户满意度3、风险管理4、产品优…

基于 K8S kubernetes 的常见日志收集方案

目录 1、日志对我们来说到底重不重要&#xff1f; 2、常见的日志收集方案 2.1 EFK 2.2 ELK Stack 2.3 ELKfilebeat 2.4 其他方案 2、elasticsearch组件介绍 3、filebeat组件介绍 3.1 filebeat和beat关系 3.2 filebeat是什么&#xff1f; 3.3 Filebeat工作原理 3.4 …

智慧卫生间系统:引领公共卫生间管理的新时代@卓振思众

随着城市化进程的加快&#xff0c;公共卫生间的使用频率不断增加。如何提升公共卫生间的使用体验、管理效率以及卫生水平&#xff0c;已成为各地政府和管理者关注的焦点。智慧卫生间系统应运而生&#xff0c;成为解决这一问题的重要工具。它结合了物联网技术和智能管理理念&…

CTF 技能树 LOG -GIT泄露 笔记

log 使用虚拟机kali操作 python2 安装 apt-get install python2 进入root用户&#xff0c;下载克隆git hack库 git clone https://github.com/BugScanTeam/GitHack sudo passwd root 修改root 命名密码为root 切换登录 su root 终端进入home/kali/GitHack/ python GitH…

为您的任意模型赋能——RAG

随着大语言模型的参数规模越来越大&#xff0c;微调模型的代价越来越大&#xff0c;于是知识检索增强的方式成为越来越主流的选择。通过提前准备好的知识库&#xff0c;在模型进行推理之前进行知识检索作为上下文一同交给大模型进行推理&#xff0c;从而提升大模型对领域知识的…