一个简单的 SVG 验证码生成器,支持数字、字母、混合和数学公式类型,可自定义字体、字符集、干扰线等参数。暂时不支持浏览器端。
pnpm add @lovekeqing/captcha
import { Captcha } from "@lovekeqing/captcha";
const captcha = new Captcha({
type: "formula", // 验证码类型,可选:"number" | "letter" | "mix" | "formula"
length: 3, // 验证码长度或公式中数字个数
noise: 2, // 干扰线数量
});
captcha.generate().then(({ value, svg }) => {
console.log("验证码值:", value);
// svg 为验证码图片的 SVG 字符串
});
详见 CaptchaOptions
:
下面所有的配置项均为可选:
fontPath
:字体文件路径,支持 ttftype
:验证码类型,"number" | "letter" | "mix" | "formula",默认 "number"length
:验证码长度,默认 4,公式类型表示数字个数width
/height
:验证码图片宽高,默认自动计算noise
:干扰线数量,默认 1noiseWidth
:干扰线宽度,默认 0.03 的图片高度chars
:自定义字符集,默认根据 type
生成ignoreChars
:忽略的字符集backgroundColor
:背景颜色,默认随机生成captcha.generate(content?: string): Promise<CaptchaResult>
generate
方法用于生成随机的验证码图片,详见 CaptchaResult
:
generate
方法接受一个可选参数 content
,用于指定验证码的内容。如果不传入该参数,验证码内容将根据配置项随机生成。
返回一个 Promise 对象,其成功的结果包含以下属性:
value
:验证码答案svg
:验证码的 SVG 字符串backgroundColor
:背景颜色width
:宽度,实际生成的验证码图片宽度height
:高度,实际生成的验证码图片高度scale
:缩放,当用户指定的宽高与计算宽高不符时,会按用户指定的宽高进行缩放pnpm build
:构建项目pnpm test
:运行测试pnpm build:docs
:生成文档pnpm build:all
:测试、构建并生成文档当项目的管理员审核通过后,您的贡献将被合并到主分支中。
MIT License