先安装 svg-captcha 依赖,创建云函数 get-captcha 如下:
import cloud from '@lafjs/cloud'
import captcha from 'svg-captcha'
export async function main(ctx: FunctionContext) {
const options = {
size: 4, // 验证码长度为4
ignoreChars: '0oO1IiLl', // 不包含字符"0oO1IiLl"
noise: 1, // 噪点数量为1个
color: true, // 验证码彩色显示
background: '#EEE', // 背景颜色
charPreset: "12345689", // 默认是数字+字母,这里改成纯数字
}
const captchaData = captcha.create(options) // 生成验证码数据
// 保存验证码到数据库
const db = cloud.database()
await db.collection('captcha')
.add({
code: captchaData.text.toLocaleLowerCase(),
createdAt: new Date()
})
ctx.response.type('svg').send(captchaData.data) // 返回验证码图片
}
效果如下
[upl-image-preview url=https://forum.laf.run/assets/files/2023-03-24/1679680465-161065-image.png]