Skip to content

后端

server/ 目录下提供了后端服务的参考实现。这些是参考实现,不是发布的包 — 请将所需代码复制到自己的后端项目中。

目录框架端口描述
server/nodeExpress 53001Node.js 后端示例
server/javaSpring Boot 38080Java 后端示例
server/goGin8082Go 后端示例

快速开始(Node.js 示例)

bash
cd server/node
pnpm install
pnpm dev

服务运行在 http://localhost:3001。详见各服务端目录的 README。

API 接口

方法端点描述
GET/api/captcha生成验证码图片
POST/api/captcha/verify验证验证码
GET/api/health健康检查
GET/api/info服务信息

生成验证码

GET /api/captcha?type=slider&width=300&height=170

参数类型默认值描述
typestringslider验证码类型:sliderclick
widthnumber300图片宽度
heightnumber170图片高度
precisionnumber5验证精度
clickCountnumber3点击数量(点选类型)

响应(滑动):

json
{
  "success": true,
  "data": {
    "captchaId": "uuid-string",
    "type": "slider",
    "bgImage": "data:image/png;base64,...",
    "sliderImage": "data:image/png;base64,...",
    "sliderY": 42,
    "width": 300,
    "height": 170,
    "expiresAt": 1700000000000
  }
}

响应(点选)包含 clickTextsclickCharImages,不含 sliderImage/sliderY

验证验证码

POST /api/captcha/verify

请求体:

json
{
  "captchaId": "uuid-string",
  "type": "slider",
  "target": [123]
}

响应:

json
{
  "success": true,
  "message": "验证成功",
  "data": { "verifiedAt": 1700000000000 }
}

安全管理接口

方法端点描述
GET/api/security/status/:ip获取 IP 安全状态
GET/api/security/blacklist获取黑名单列表
POST/api/security/blacklist添加 IP 到黑名单
DELETE/api/security/blacklist/:ip从黑名单移除 IP

环境变量

变量默认值描述
PORT3001(Node)/ 8080(Java)/ 8082(Go)服务端口
HOSTlocalhost服务主机
SECRET_KEYcaptcha-pro-secret-keyAES-GCM 加密密钥
EXPIRE_TIME60000验证码过期时间(毫秒)
TIMESTAMP_TOLERANCE60000时间戳容差(毫秒)

前端对接后端

javascript
import { SliderCaptcha } from '@captcha-pro/core'

const captcha = new SliderCaptcha({
  el: '#captcha',
  verifyMode: 'backend',
  backendVerify: {
    getCaptcha: 'http://localhost:3001/api/captcha?type=slider',
    verify: 'http://localhost:3001/api/captcha/verify'
  },
  onSuccess: () => console.log('后端验证通过!')
})

各服务端指南

基于 MIT 许可发布。