@lovekeqing/captcha
v0.0.8
Published
A simple svg captcha generator
Downloads
70
Maintainers
Readme
@lovekeqing/captcha
一个简单的 SVG 验证码生成器,支持数字、字母、混合和数学公式类型,可自定义字体、字符集、干扰线等参数。暂时不支持浏览器端。
特性
- 支持多种验证码类型:数字、字母、混合、公式
- 可自定义验证码长度、字符集、忽略字符
- 支持自定义字体(TTF)
- 可设置验证码图片宽高
- 支持设置背景颜色和自动计算字体颜色
- 干扰线数量和宽度可调
- 生成 SVG 格式验证码图片
- 支持 TypeScript 类型提示
安装
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:背景颜色,默认随机生成
generate 方法
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:测试、构建并生成文档
贡献流程
- Fork 本仓库
- 创建新分支并进行修改
- 提交 Pull Request
当项目的管理员审核通过后,您的贡献将被合并到主分支中。
许可证
MIT License
