react + antDesignPro 企业微信扫码登录

server/2024/11/14 3:38:53/

效果

实现步骤

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.ppmy.cn/server/120877.html

相关文章

代码随想录算法day38 | 动态规划算法part11 | 1143.最长公共子序列,1035.不相交的线,53. 最大子序和,392.判断子序列

1143.最长公共子序列 体会一下本题和 718. 最长重复子数组 的区别 力扣题目链接(opens new window) 给定两个字符串 text1 和 text2&#xff0c;返回这两个字符串的最长公共子序列的长度。 一个字符串的 子序列 是指这样一个新的字符串&#xff1a;它是由原字符串在不改变字符的…

【Webpack--006】处理字体图标资源

&#x1f913;&#x1f60d;Sam9029的CSDN博客主页:Sam9029的博客_CSDN博客-前端领域博主 &#x1f431;‍&#x1f409;若此文你认为写的不错&#xff0c;不要吝啬你的赞扬&#xff0c;求收藏&#xff0c;求评论&#xff0c;求一个大大的赞&#xff01;&#x1f44d;* &#x…

外包干了4年,技术退步太明显了。。。。。

先说一下自己的情况&#xff0c;本科生生&#xff0c;20年通过校招进入武汉某软件公司&#xff0c;干了差不多4年的功能测试&#xff0c;今年国庆&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能…

搜维尔科技:工程师已经解决OptiTrack捕捉过程中肘部不自然的弯曲

工程师已经解决OptiTrack捕捉过程中肘部不自然的弯曲 搜维尔科技&#xff1a;工程师已经解决OptiTrack捕捉过程中肘部不自然的弯曲

【WebGIS实例】(17)下载瓦片底图并实现离线加载——以天地图为例

前言 在有些项目中&#xff0c;会有部署到无法访问互联网的内网环境中&#xff0c;这时候就会有离线部署应用和地图服务等需求了。 本博客是本着交流学习的目的&#xff0c;分享一个离线瓦片地图的获取方案&#xff0c;以天地图为案例&#xff0c;实现步骤&#xff1a; 安装…

【AI创作组】Matlab简介

1. MATLAB 简介 1.1 科学计算语言 MATLAB是一种高性能的科学计算语言,广泛应用于工程计算、控制设计、信号处理和图形显示等领域。 语言特性:MATLAB语言简洁明了,接近自然数学语言,使得用户能够轻松编写数学表达式和算法,进行高效的数值计算和符号运算。计算能力:MATLA…

茶思屋直播|TinyEngine+AI:聚焦主航道,在实践中探索低代码技术黑土地

低代码引擎使能开发者定制低代码平台。它是低代码平台的底座&#xff0c;提供可视化搭建页面等基础能力&#xff0c;既可以通过线上搭配组合&#xff0c;也可以通过cli创建个人工程进行二次开发&#xff0c;实时定制出自己的低代码平台。适用于多场景的低代码平台开发&#xff…

网络通信——路由器、交换机、集线器(HUB)

注意&#xff1a;传输层&#xff0c;应用层没有网路设备 一.路由器&#xff08;网络层设备&#xff09; 1.分割广播域 2.一个接口就是一个广播域 3.一般接口位4&#xff0c;8&#xff0c;12。 4.数据转发 &#xff08;由路由表转发数据&#xff09; 5.根据路由表来进行路径选…