当前位置: 首页 > news >正文

全栈的自我修养 ———— react实现滑动验证

实现滑动验证

  • 展示
  • 依赖
  • 实现
    • 不借助create-puzzle
    • 借助create-puzzle

展示

在这里插入图片描述
在这里插入图片描述

依赖

npm install rc-slider-captcha
npm install create-puzzle

api地址

实现

不借助create-puzzle

需要准备两张图片一个是核验图形,一个是原图------> 这个方法小编试了后感觉比较麻烦,这边就不继续写了
在这里插入图片描述

借助create-puzzle

这个工具会接受一个照片,然后自动分割出适当的验证尺寸
在其中bgSize必须要注意!!属性必须和图片一样!!!!!!!!
在这里插入图片描述

import SliderCaptcha from 'rc-slider-captcha';
import React, { useRef } from 'react';
import { sleep } from 'ut2';
import createPuzzle from 'create-puzzle';
import { RubyOutlined, MehOutlined, SmileOutlined, RedoOutlined, LoadingOutlined } from '@ant-design/icons'
// 这里是你要自己准备的图片
import pic from '../static/soildCaptcha.jpeg'
const SoildCaptcha = (params) => {const offsetXRef = useRef(0); // x 轴偏移值// 查看是否在安全距离const verifyCaptcha = async (data) => {await sleep();if (data.x >= offsetXRef.current - 5 && data.x < offsetXRef.current + 5) {setTimeout(() => {params.onSuccess()}, 1000)return Promise.resolve();}return Promise.reject();};return (<div className='container'><SliderCaptcharequest={() =>createPuzzle(pic, {format: 'blob'}).then((res) => {offsetXRef.current = res.xreturn {// 背景图片bgUrl: res.bgUrl,// 核验区域puzzleUrl: res.puzzleUrl};})}onVerify={(data) => {return verifyCaptcha(data);}}// !!!!这里是重点!!!!!// bgSize必须和原图片的尺寸一样!!!!!!!!!!!!!!!!!!bgSize={{ width: 462, height: 266 }}tipIcon={{default: <RubyOutlined />,loading: <LoadingOutlined />,success: <SmileOutlined />,error: <MehOutlined />,refresh: <RedoOutlined />}}tipText={{default: '向右👉拖动完成拼图',loading: '👩🏻‍💻🧑‍💻努力中...',moving: '向右拖动至拼图位置',verifying: '验证中...',error: '验证失败'}}// loadingBoxProps={{//   icon: <Heart />,//   text: "I'm loading"// }}/></div>);
}export default SoildCaptcha;
http://www.lryc.cn/news/338669.html

相关文章:

  • <<、>>和>>>
  • 【C++进阶】RAII思想&智能指针
  • 探索量子计算:打开未来技术的大门
  • C++11 设计模式2. 简单工厂模式
  • RabbitMQ-死信队列常见用法
  • 2024/4/14周报
  • MySQL 社区版 安装总结
  • 二叉排序树的增删改查(java版)
  • linux下coredump问题的定位分析方法
  • 第十届蓝桥杯省赛真题(C/C++大学B组)
  • Scrapy 爬取m3u8视频
  • LVGL简单记录
  • 计算机网络——ARP协议
  • 【C++]C/C++的内存管理
  • 深入理解计算机网络分层结构
  • 亚马逊云科技CTO带你学习云计算降本增效秘诀
  • 快速上手Vue
  • java 目录整理
  • 使用Python的Pillow库进行图像处理书法参赛作品
  • docker 容器指定utf-8编码
  • 单例模式以及常见的两种实现模式
  • Java hashCode() 和 equals()的若干问题解答
  • 高级IO——React服务器简单实现
  • Qt使用插件QPluginLoader 机制开发
  • 双子座 Gemini1.5和谷歌的本质
  • 二百三十、MySQL——MySQL表的索引
  • 并发编程之ThreadLocal使用及原理
  • 软件测试 测试开发丨Pytest结合数据驱动-yaml,熬夜整理蚂蚁金服软件测试高级笔试题
  • 软考数据库---2.SQL语言
  • 基于顺序表实现通讯录