captcha

Project Url: anji-plus/captcha
Introduction: 行为验证码(滑动拼图、点选文字),前后端(java)交互,包含 h5/Android/IOS/flutter/uni-app 的源码和实现
More: Author   ReportBugs   OfficialWebsite   
Tags:

  1.1 电脑在线体验:https://captcha.anji-plus.com/

  1.2 微信小程序和 H5 在线体验(基于 uni-app 实现)

   如果图片未能正常展示,可查看码云,和 github 同步 码云
微信小程序  h5
    微信小程序 Demo            uni-app H5 demo

2 功能概述

  2.1 组件介绍

   行为验证码采用嵌入式集成方式,接入方便,安全,高效。抛弃了传统字符型验证码展示-填写字符-比对答案的流程,采用验证码展示-采集用户行为-分析用户行为流程,用户只需要产生指定的行为轨迹,不需要键盘手动输入,极大优化了传统验证码用户体验不佳的问题;同时,快速、准确的返回人机判定结果。目前对外提供两种类型的验证码,其中包含滑动拼图、文字点选。如图 1-1、1-2 所示。若希望不影响原 UI 布局,可采用弹出式交互。
   后端基于 Java 实现,提供纯 Java.jar 和 SpringBoot Starter。前端提供了 Android、iOS、Futter、Uni-App、ReactNative、Vue、Angular、Html、Php 等多端示例。

滑动拼图 文字点选
滑动拼图 点选文字
图 1-1 图 1-2


  2.2 概念术语描述

术语 描述
验证码类型 1)滑动拼图 blockPuzzle 2)文字点选 clickWord
验证 用户拖动/点击一次验证码拼图即视为一次“验证”,不论拼图/点击是否正确
二次校验 验证数据随表单提交到后台后,后台需要调用 captchaService.verification 做二次校验。目的是核实验证数据的有效性。

3 交互流程

① 用户访问应用页面,请求显示行为验证码
② 用户按照提示要求完成验证码拼图/点击
③ 用户提交表单,前端将第二步的输出一同提交到后台
④ 验证数据随表单提交到后台后,后台需要调用 captchaService.verification 做二次校验。
⑤ 第 4 步返回校验通过/失败到产品应用后端,再返回到前端。如下图所示。 时序图

4 目录结构

├─core
│ ├─captcha    java 核心源码
│ └─captcha-spring-boot-starter    springboot 快速启动
├─images       效果图
├─service
│ ├─springboot    后端为 springboot 项目示例
│ └─springmvc    后端为 springmvc 非 springboot 项目示例
└─view       多语言客户端示例
 ├─android    原生 android 实现示例
 ├─angular    angular 实现示例
 ├─flutter    flutter 实现示例
 ├─html    原生 html 实现示例
 ├─ios    原生 ios 实现示例
 ├─php    php 实现示例
 ├─react-native    react-native 实现示例
 ├─uni-app    uni-app 实现示例
 └─vue    vue 实现示例

5 接入文档

  5.1 本地启动

  第一步,启动后端,导入 Eclipse 或者 Intellij,启动 service/springboot 的 StartApplication。社区底图库
  第二步,启动前端,使用 visual code 打开文件夹 view/vue,npm install 后 npm run dev,浏览器登录

npm install
npm run dev

DONE  Compiled successfully in 29587ms                       12:06:38
I  Your application is running here: http://localhost:8081

 详细的前后端接入文档,后端示例代码 service 目录下,前端示例代码 view 目录下。

  5.2 码云 wiki 接入文档(国内较快)

  5.3 github wiki 接入文档

6 近期计划

  6.1 增加 weex 示例

  6.2 增加 ReactNative 示例(已添加)

7 技术支持微信群

微信一群已满,现开放二群。github 可能有缓存,不会自动更新。
微信群地址:https://captcha.anji-plus.com/static/weixin.png

开源不易,劳烦各位 star ☺

Apps
About Me
GitHub: Trinea
Facebook: Dev Tools