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
+13
View File
@@ -123,5 +123,18 @@ OSS_MODE=local
# OSS_LOCAL_ROOT=
# OSS_PREFIX 是 P2 资料收集(collect)用的前缀,本功能由 scene 决定命名空间。
# ---- 登录短信(用户名 + 密码 + 短信验证码 + DCAuth 设备签名)----
# mock(默认):只写日志、不真实发送、不限制每日次数;
# aliyun:阿里云 Dysmsapi(RPC 签名),需要下面四项凭据。
WORKER_SMS_PROVIDER=mock
WORKER_SMS_ACCESS_KEY_ID=
WORKER_SMS_ACCESS_KEY_SECRET=
WORKER_SMS_SIGN_NAME=
WORKER_SMS_TEMPLATE_CODE=
# 验证码有效期 / 重发冷却 / 真实渠道每日上限
WORKER_SMS_CODE_TTL_SECONDS=300
WORKER_SMS_COOLDOWN_SECONDS=60
WORKER_SMS_DAILY_LIMIT=10
# Uvicorn reload(开发模式设为 true,生产环境保持 false)
UVICORN_RELOAD=false