feat(tenant): 新增租户自助注册功能(支持 Turnstile 人机验证)

- 支持匿名 POST /register 注册,默认套餐 ID=999、账号数 99、2099 年底过期
- 集成 Cloudflare Turnstile 服务端校验,可开关、可配置密钥与超时
- 补充操作人信息,避免 creator/updater 为空
- 操作日志匿名场景从 Request Attribute 补全用户信息
- 更新 .gitignore 忽略 /.omc/ 与 AGENTS.md
- 关闭默认水印(留空)
This commit is contained in:
2026-02-06 19:09:57 +08:00
parent eb936ce677
commit 432ed8adf8
7 changed files with 184 additions and 7 deletions

View File

@@ -98,7 +98,7 @@ aj:
cache-number: 1000 # local 缓存的阈值,达到这个值,清除缓存
timing-clear: 180 # local定时清除过期缓存(单位秒),设置为0代表不执行
type: blockPuzzle # 验证码类型 default两种都实例化。 blockPuzzle 滑块拼图 clickWord 文字点选
water-mark: 芋道源码 # 右下角水印文字(我的水印),可使用 https://tool.chinaz.com/tools/unicode.aspx 中文转 UnicodeLinux 可能需要转 unicode
water-mark: # 右下角水印文字(我的水印),可使用 https://tool.chinaz.com/tools/unicode.aspx 中文转 UnicodeLinux 可能需要转 unicode
interference-options: 0 # 滑动干扰项(0/1/2)
req-frequency-limit-enable: false # 接口请求次数一分钟限制是否开启 true|false
req-get-lock-limit: 5 # 验证失败 5 次get接口锁定
@@ -212,6 +212,11 @@ yudao:
send-maximum-quantity-per-day: 10
begin-code: 9999 # 这里配置 9999 的原因是,测试方便。
end-code: 9999 # 这里配置 9999 的原因是,测试方便。
turnstile: # Cloudflare Turnstile 服务端校验配置
enable: true # 生产开启后,必须配置 secret-key
secret-key: "0x4AAAAAACYSAQ2xlao9D8LlyDRhB3n1BmM"
verify-url: https://challenges.cloudflare.com/turnstile/v0/siteverify
timeout-millis: 3000
debug: false
# 插件配置 TODO 芋艿【IOT】需要处理下
@@ -221,4 +226,4 @@ pf4j:
md5:
salt: (-FhqvXO,wMz
multiple-device-login: true
multiple-device-login: true