egg-captchas
验证码生成插件,包括:
- 图片验证码
- 图片滑动验证码
- 文字点击验证码
依赖说明
依赖的 egg 版本
egg-captchas 版本 | egg 1.x |
---|---|
1.x | |
0.x |
依赖的插件
- redis 滑块信息缓存
注意
滑块验证码信息缓存时,redis必须开启agent: true
,在 agent worker 中连接 redis;因为滑块生成在 agent worker 中
详细配置
请到 config/config.default.js 查看详细配置项说明。
使用说明
图片验证码
// 图片验证码挂载在全局 app 对象上
// 获取验证码
// {String} value 生成的验证码字符串值,应用自己保存到session,用于校验
// {jpegStream} image 生成的验证码图片流
const { value, image } = app.imageCaptcha.generate([options]) // options可以覆盖config配置
// 保存到session,并返回图片
ctx.session.set('image-captcha', value)
ctx.body = image
ctx.set('Cache-Control', 'no-cache, private, no-store, must-revalidate, max-stale=0, post-check=0, pre-check=0')
ctx.type = 'image/jpeg'
滑块验证码
// 滑块验证码挂载在全局 app 对象上
// 获取验证码
// {Boolean} success 获取是否成功
// {String} message [option] 错误信息
// {Object} data [option] 验证码信息
// {Number} data.index 获取的滑块图片次序(滑块图片是应用启动时随机生成并进行缓存,通过index来进行校验)
// {String} data.bgImage 背景图片名称(无具体路径,应用自己拼接图片URL)
// {String} data.blockImage 滑块图片名称(无具体路径,应用自己拼接图片URL)
const { success, data, message } = await app.slideCaptcha.get()
// 校验验证码
// {Number} index 滑块图片次序
// {Number} offset 移动偏移量
// {Boolean} success 校验是否成功
// {String} message 失败原因
const { success, message } = await app.slideCaptcha.check(index, offset)
提问交流
请到 egg issues 异步交流。