图形验证码 API
生成 SVG 图形验证码(字母数字、纯数字、算术题、中文算术题),服务端校验,一次有效
数据来源:本地生成
返回统一的 JSON 格式 { code, message, cached, stale, updatedAt, data },支持跨域,免注册每天可免费调用 100 次,注册后每天 10000 次。
生成图形验证码(SVG,2 分钟内有效)
GET /api/captcha
请求参数
type:类型:alnum(字母数字)、number(纯数字)、math(算术题,如 3+5=?)、chinese_math(中文算术题,如 三加五等于?),示例mathlength:字符个数(4~8),只对 alnum 和 number 生效,示例5
返回字段
token(string):验证码凭证(24 个字符,URL 安全的 Base64),校验时原样传给 /api/captcha/verify 的 token 参数image(string):验证码图片,data URI 格式:data:image/svg+xml;base64,<SVG 的 Base64>,可直接用作 <img src>。高 50 像素,宽度随字符数变化(约 100~230 像素);字形用路径绘制(不含 <text> 元素),带随机旋转、偏移、干扰线和噪点type(string):验证码类型,与请求参数 type 相同:alnum(4~8 位大写字母和数字,不含易混淆的 0、O、1、I)、number(4~8 位数字)、math(两个数的加、减、乘法,答案为非负整数)、chinese_math(中文数字一~十的加减乘,答案为非负整数)expiresIn(number):有效期(秒),固定为 120;过期后校验返回 expired
校验验证码(每个 token 只能校验一次)
GET /api/captcha/verify
请求参数
token(必填):生成验证码时返回的 token,示例mZ3xQ0v9b1TqT2c8y5LwKk7Aanswer(必填):用户输入的答案,忽略大小写和首尾空格;算术题填计算结果,也可以写中文数字(如 八),示例A7K9
返回字段
valid(boolean):是否通过校验:只有 reason 为 ok 时为 truereason(string):结果原因:ok(答案正确)、wrong(答案错误)、expired(已超过 2 分钟有效期)、not_found(token 不存在:已经校验过、写错了、过期超过 10 分钟已被清理,或服务重启、验证码总数超过 20000 条被淘汰)。无论结果如何,token 校验一次后即作废