1.0.3 • Published 7 years ago

svg-captcha-color v1.0.3

Weekly downloads
4
License
MIT
Repository
-
Last release
7 years ago

svg-captcha-color

tnpm

在node.js中生成svg格式的验证码

本项目核心代码修改自Weilin Shisvg-captcha项目

什么情况下使用SVG验证码?

  • 无法使用 google recaptcha
  • 无法安装 c++ 模块

安装模块:

$ npm install --save svg-captcha-color

使用方法

const captcha = require('svg-captcha-color')({
  path: './fonts', // 字体文件夹
  size: 40, // 字体大小
  width: 150, // 验证码宽度
  height: 50, // 验证码高度
  total: 4, // 验证码长度
  chars: 'ABCDEFGHJKLMNPQRSTUVWXYZ23456789', // 验证码字符,由于0O1I易混淆,因此不推荐使用
  background: '#66CCFF', // 验证码背景颜色
  expreg: /\.(ttf|woff|otf)$/, // 验证码字体匹配表达式
  template: './tpl.ejs' // EJS模板地址
})

captcha() // 返回值: { data: 'SVG验证码数据', code: '验证码文本' }
在 Express 中使用
const captcha = require('svg-captcha-color')()

app.get('/captcha', (req, res) => {
	var { code, data } = captcha()

	req.session.captcha = code
	
	res.set('Content-Type', 'image/svg+xml')

	res.status(200).send(data)
})

图片示例

image

为什么使用 svg 格式? (引用自svg-captcha项目)

不需要引用 c++ 模块。
如果你认为可以用正则匹配text标签,那就大错特错了。 这个项目使用了opentype.js,把文字转化为了路径。
换句话说,你得到的是 '<path fill="#444" d="M104.83 19.74L107.85 19.74L112 33.56L116.13 19.74L119.15 19.74L113.48 36.85...' 这样的路径,没有text标签。所以SVG验证码可能比的图片普通验证码要更难识别,因为你必须先做SVG到其它格式的转化。

License

MIT

1.0.3

7 years ago

1.0.2

7 years ago

1.0.1

7 years ago

1.0.0

7 years ago

0.0.4

7 years ago

0.0.3

8 years ago

0.0.2

8 years ago

0.0.1

8 years ago