在node.js中生成svg格式的验证码
安装
npm install --save svg-captcha
使用方法
const svgCaptcha = require('svg-captcha');
const captcha = svgCaptcha.create();
console.log(captcha);
// {data: '<svg.../svg>', text: 'abcd'}
在 express中使用
const svgCaptcha = require('svg-captcha');
app.get('/captcha', function (req, res) {
const captcha = svgCaptcha.create();
req.session.captcha = captcha.text;
res.type('svg');
res.status(200).send(captcha.data);
});
API
svgCaptcha.create(options)
如果没有任何参数,则生成的 svg 图片有4个字符。
size: number // 验证码长度,默认4ignoreChars: '0o1i' // 验证码字符中排除 0o1inoise: number // 干扰线条的数量,默认1color: true // 验证码的字符是否有颜色,默认没有,如果设定了背景,则默认有background: '#cc9966' // 验证码图片背景颜色width: number // 验证码svg宽度height: number // 验证码svg高度fontSize: number // 验证码字体大小charPreset: string // 随机字符预设(从这里随机取字符)
该函数返回的对象拥有以下属性
data: string // svg 路径text: string // 验证码文字
svgCaptcha.createMathExpr(options)
和前面的 create 参数和返回值都一样。不同的是这个 api 生成的 svg 是一个算数式,而 text 属性上是算数式的结果。不过 createMathExpr 参数多了一些。
mathMin: number // 随机数最小值,默认1mathMax: number // 随机数最大值,默认9mathOperator: '+/-' // 运算符,可选值'+'、'-'、'+/-',默认'+/-'
svgCaptcha.loadFont(url)
加载字体,覆盖内置的字体。
url: string // 字体文件存放路径
svgCaptcha.randomText(size)
返回size长度随机字符串