Files
AstrBot/requirements.txt
鸦羽 e8d13af5b9 feat: add TOTP two-factor authentication for dashboard login (#8189)
* feat: add TOTP two-factor authentication for dashboard login

* fix: ensure TOTP verification uses UTC for accurate time comparison

* fix: update recovery code validation logic for disabling TOTP

* test: add unit tests for TOTP functionality and recovery code validation

* chore: format

* feat: add trust_proxy_headers switch for auth rate-limit IP source

* feat: make dashboard auth rate-limit configurable via system settings

Add auth_rate_limit config block to dashboard settings with enable
(default: true), average_interval (default: 1.0s), and max_burst
(default: 3) options. The dashboard auth middleware now reads from
config instead of using hardcoded values. The average_interval and
max_burst fields are conditionally shown only when rate limiting is
enabled.

* fix: normalize dashboard client IP from trusted proxy headers

* refactor: encapsulate rate limiter state into registry, add TTL

* feat: show dynamic page title during two-factor verification

* fix: require two-factor verification for protected config saves

* chore: format

* refactor: reorganize TOTP verification UI components for better layout

* refactor: clean up recovery stage UI by removing unused styles and improving label handling

* docs: add TOTP two-factor authentication documentation for WebUI

---------

Co-authored-by: Soulter <905617992@qq.com>
2026-06-01 16:40:29 +08:00

58 lines
1.0 KiB
Plaintext

aiocqhttp>=1.4.4
aiodocker>=0.24.0
aiohttp>=3.11.18
aiosqlite>=0.21.0
anthropic>=0.51.0
apscheduler>=3.11.0
certifi>=2025.4.26
chardet~=5.1.0
loguru>=0.7.2
cryptography>=44.0.3
dashscope>=1.23.2
deprecated>=1.2.18
dingtalk-stream>=0.22.1
docstring-parser>=0.16
faiss-cpu>=1.12.0
filelock>=3.18.0
google-genai>=1.56.0
httpx[socks]>=0.28.1
lark-oapi>=1.4.15
mcp>=1.8.0
openai>=1.78.0
ormsgpack>=1.9.1
pillow>=11.2.1
pip>=25.1.1
psutil>=5.8.0,<7.2.0
py-cord>=2.6.1
pydantic>=2.12.5
pydub>=0.25.1
pyjwt>=2.10.1
python-telegram-bot>=22.6
qq-botpy>=1.2.1
python-socks>=2.8.0
quart>=0.20.0
silk-python>=0.2.6
slack-sdk>=3.35.0
sqlalchemy[asyncio]>=2.0.41
sqlmodel>=0.0.24
telegramify-markdown>=1.0.0
watchfiles>=1.0.5
websockets>=15.0.1
wechatpy>=1.8.18
audioop-lts ; python_full_version >= '3.13'
click>=8.2.1
pypdf>=6.1.1
pysocks>=1.7.1
aiofiles>=25.1.0
rank-bm25>=0.2.2
jieba>=0.42.1
markitdown-no-magika[docx,xls,xlsx]>=0.1.2
xinference-client
tenacity>=9.1.2
shipyard-python-sdk>=0.2.4
shipyard-neo-sdk>=0.2.0
packaging>=24.2
qrcode>=8.2
python-ripgrep==0.0.8
pyotp>=2.9.0