服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

node.js|vue.js|jquery|angularjs|React|json|js教程|

服务器之家 - 编程语言 - JavaScript - React - 一款小而美的开源滑动验证码组件

一款小而美的开源滑动验证码组件

2023-12-08 13:34趣谈前端 React

react-rotate-captcha​ 是一款开箱即用的滑动验证码 React​ 组件,基于 isszz/rotate-captcha 做的二次开发;结合了腾讯防水墙,增加安全策略.

hi, 大家好, 我是徐小夕, 今天给大家分享一款非常有意思的开源组件, 可以实现我们平时开发中的滑动验证码需求, 当然也是技术圈小伙伴奋战了无数个黑夜和白天的结果, 值得好好推荐一下.

一款小而美的开源滑动验证码组件图片

react-rotate-captcha 是一款开箱即用的滑动验证码 React 组件,基于 isszz/rotate-captcha 做的二次开发;结合了腾讯防水墙,增加安全策略.

具体策略由两部分组成:

  • policie默认策略
  • rules策略组规则

策略规则:

  • limit: 上限次数,达到峰值后重新验证,0不限制
  • time: 使用期限,过期后重新验证,0不限制
  • routers: 匹配要授权的路由组,null全匹配

这里的路由是指验证通过后,要执行操作的路由,而不是验证操作时的路由

一款小而美的开源滑动验证码组件图片

原理:

  • 验证通过后将颁发:sid、ticket
  • 执行操作时验证决定是否通过,通过就去和执行的route进行匹配
  • 从而避免跨权,跨范围执行

优点:

  • 针对不同应用场景提供验证
  • 例如登录验证有效期30分钟,后台操作按次数进行身份验证

后端提供 Laravel 扩展:levi/laravel-rotate-captcha ,可直接使用或根据 Api 接口定制.

效果如下:

一款小而美的开源滑动验证码组件图片

设计思路

一款小而美的开源滑动验证码组件图片

具体的使用安装方式如下:

// yarn安装
yarn add react-rotate-captcha

// pnpm安装
pnpm add react-rotate-captcha

使用方式如下:

// 1. 通过status唤起
import { useState } from 'react';
import RotateCaptcha from "react-rotate-captcha";

function App() {
    const [open, setOpen] = useState(true);
    return  setOpen(false)} />
}

// 2. 通过Instance唤起
import RotateCaptcha from "react-rotate-captcha";

function Page() {
    const captcha = RotateCaptcha.useCaptchaInstance();
    return (
        
    );
}

function App() {
    return (
        
            
        
    );
}

当然我们也可以使用 ref 来实现同样的效果:

import { useRef } from 'react';
import RotateCaptcha, { CaptchaInstance } from "react-rotate-captcha";

function App() {
    const ref = useRef(null);
    return (
        
            
        
    );
}

基本属性介绍:

一款小而美的开源滑动验证码组件图片

同时该组件接受5个方法,只有 onClose 和 result 是同步函数,其余全部为异步函数:

一款小而美的开源滑动验证码组件图片

更详细的用法大家可以在github上学习参考:

https://github.com/cgfeel/react-rotate-captcha

demo 目前提供了 webpack 和 vite 版本的, 可以在: https://codesandbox.io/p/devbox/react-rotate-captcha-ts-react-vite-t23lcq 体验.

原文地址:https://mp.weixin.qq.com/s/uN8PSeuIXWcEBeyxm2KsCw

延伸 · 阅读

精彩推荐
  • ReactReact + TypeScript:如何处理常见事件?

    React + TypeScript:如何处理常见事件?

    下面来通过一些简单的 Demo (每个 Demo 后面都有 CodeSandBox 的在线体验地址)看看如何在 React + TypeScrip 中处理常见的事件!...

    前端充电宝11712022-04-19
  • ReactReact中使用Vditor自定义图片详解

    React中使用Vditor自定义图片详解

    这篇文章主要介绍了React中使用Vditor自定义图片详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们...

    浅夏晴空10052021-12-20
  • ReactWebpack3+React16代码分割的实现

    Webpack3+React16代码分割的实现

    这篇文章主要介绍了Webpack3+React16代码分割的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面...

    小叶子9012022-01-25
  • React编写简洁React组件的小技巧

    编写简洁React组件的小技巧

    这篇文章主要介绍了编写简洁React组件的小技巧,帮助大家更好的理解和学习使用React,感兴趣的朋友可以了解下...

    KooFE前端团队7682022-02-25
  • ReactReact Diff原理深入分析

    React Diff原理深入分析

    这篇文章主要介绍了React Diff原理的相关资料,帮助大家更好的理解和学习使用React框架,感兴趣的朋友可以了解下...

    AkeAke11282022-03-08
  • Reactreact hooks入门详细教程

    react hooks入门详细教程

    这篇文章主要介绍了react hooks入门详细教程,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考...

    抱素_6942022-02-23
  • Reactreact项目引入scss的方法

    react项目引入scss的方法

    这篇文章主要介绍了react项目引入scss的方法,本文给大家介绍了React pwa的配置方法,通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参...

    范天缘10742022-03-08
  • Reactreact显示文件上传进度的示例

    react显示文件上传进度的示例

    这篇文章主要介绍了react显示文件上传进度的示例,帮助大家更好的理解和学习使用react,感兴趣的朋友可以了解下...

    阿政想暴富8942022-03-03