平台功能(自研)可视化配置
登录配置
登录配置控制后台与用户端的图形验证码,保存在 sys_config 的 login 分类。修改后下一次获取验证码时生效,不需要重启。

登录配置(截图占位)
/images/docs/settings-login.png建议 1920 × 1080,截验证码开关、类型与样式参数。
配置项
| 配置项 | 配置键 | 取值 | 默认 |
|---|---|---|---|
| 验证码功能 | captcha.enabled | true / false | false |
| 验证码类型 | captcha.type | MATH 数学运算 / CHAR 字符 | MATH |
| 验证码类别 | captcha.category | LINE 线段 / CIRCLE 圆圈 / SHEAR 扭曲 | LINE |
| 数字位数 | captcha.numberLength | 1–2,仅 MATH | 1 |
| 字符长度 | captcha.charLength | 4–6,仅 CHAR | 4 |
| 字符间距 | captcha.charSpace | 1–10 像素 | 5 |
| 字体列表 | captcha.fontNames | 逗号分隔的字体名 | Arial,Verdana,Tahoma,Georgia |
| 字符集 | captcha.charString | 验证码可用字符 | 去除易混淆字符的字母数字 |
| 图片边框 | captcha.border | true / false | false |
| 图片宽度 | captcha.width | 100–300 像素 | 160 |
| 图片高度 | captcha.height | 40–100 像素 | 60 |
两种验证码类型
数学运算(MATH)
生成形如 3 + 5 = ? 的算术题,答案是一个数字。numberLength 控制操作数位数,位数越大越难。
适合:后台管理、对可读性要求高的登录页。
字符验证码(CHAR)
生成随机字符串,charLength 控制长度。字符来自 captcha.charString,默认已去掉 0O、1lI 等易混淆字符。
适合:需要更高防机器能力的登录页。
干扰样式
| 类别 | 效果 | 备注 |
|---|---|---|
LINE | 随机线段 | 最轻,识别率高 |
CIRCLE | 随机圆圈 | 中等 |
SHEAR | 扭曲变形 | 最强,但移动端可读性下降 |
三种样式都会叠加噪点;样式只影响观感与识别难度,不改变校验逻辑。
与号码认证登录的关系
图形验证码用于账号密码登录;号码认证登录使用短信验证码,配置在号码认证。
两者互不影响:关闭图形验证码不会关闭号码认证登录。
关闭验证码的后果
captcha.enabled=false 时,登录接口不再要求验证码字段。它适合:
- 内网 / 本地开发环境;
- 已有其他风控手段(IP 限流、WAF、单点登录)。
公网环境不建议关闭,尤其是后台管理员登录。
排错
验证码图片显示不出来?
检查 /captchaImage 是否可达、后端是否报字体加载失败。Linux 精简镜像可能缺少 captcha.fontNames 中配置的字体,安装 fontconfig 与常用字体后重启。
改了宽度但图片没变?
浏览器缓存了旧图片;验证码接口本身应带随机参数。强制刷新后再试。
验证码总是校验失败?
确认前后端使用同一个 uuid,且 Redis 未过期;多实例部署时确认 Redis 共享。