fibjs 生成验证码
原因
fibjs 的 gd 库不支持文字, 借助第三方如 PHP, Java 又不方便.
最好能使用纯 js 的方式生成验证码图片.
trek-captcha
trek-captcha 是一个纯 js 的生成验证码的库, 非常方便.
但是 trek-captcha 与 fibjs 有兼容性问题.
fibjs 兼容
我这里使用的是 0.4.0 版本.
修改 captcha.js 的 82 行.
let v = Number(dr.readUInt32BE(n))
修改 captcha.js 的 170 行.
gif.fill(Buffer.from(colors[r].replace(/\n/g, ''), 'latin1'), 0, 13 + 48 + 10 + 1/*, 'ascii'*/)
fibjs-captcha
当前这里我也发布了 npm 包, 可以直接安装 npm install fibjs-captcha
.
示例
'use strict'
const fs = require('fs')
const captcha = require('fibjs-captcha')
const { token, buffer } = captcha()
// console.log(token, buffer)
fs.writeFile(`${token}.gif`, buffer);