feat(auth): 新增手机号与 DCAuth 设备认证登录

- 登录链路改为用户名 + 密码 + 短信验证码 + DCAuth v2 设备签名
- 新增 login_sms_codes / user_devices / device_challenges 三张表,迁移 0063/0064
- 设备绑定只比对 deviceId + publicKey,每账号一个 active 设备,管理员可重置
- 保留未绑定手机号账号的密码登录兜底,绑定后强制安全登录
- 登录页与用户管理页支持验证码、DCAuth 轮询、手机号绑定与设备重置
This commit is contained in:
yml2213
2026-10-21 22:00:03 +08:00
parent f21362dfe3
commit 2f5a63ae27
24 changed files with 3049 additions and 130 deletions
+9
View File
@@ -46,6 +46,15 @@ services:
- COOKIE_SECURE=${COOKIE_SECURE:-false}
# CORS 允许的源(逗号分隔)
- CORS_ORIGINS=${CORS_ORIGINS:-}
# 登录短信渠道(mock 只打日志;aliyun 走阿里云 Dysmsapi)
- WORKER_SMS_PROVIDER=${WORKER_SMS_PROVIDER:-mock}
- WORKER_SMS_ACCESS_KEY_ID=${WORKER_SMS_ACCESS_KEY_ID:-}
- WORKER_SMS_ACCESS_KEY_SECRET=${WORKER_SMS_ACCESS_KEY_SECRET:-}
- WORKER_SMS_SIGN_NAME=${WORKER_SMS_SIGN_NAME:-}
- WORKER_SMS_TEMPLATE_CODE=${WORKER_SMS_TEMPLATE_CODE:-}
- WORKER_SMS_CODE_TTL_SECONDS=${WORKER_SMS_CODE_TTL_SECONDS:-300}
- WORKER_SMS_COOLDOWN_SECONDS=${WORKER_SMS_COOLDOWN_SECONDS:-60}
- WORKER_SMS_DAILY_LIMIT=${WORKER_SMS_DAILY_LIMIT:-10}
# Worker 已合并到本容器,仅通过回环地址访问。
- YYB_WORKER_URL=http://127.0.0.1:8810
- YYB_WORKER_KEY=${YYB_WORKER_KEY:-}