Merge upstream/main: v0.1.61 updates with TOTP & password reset
Major features: - feat(auth): add TOTP (2FA) support for enhanced security - feat(auth): add password reset functionality - feat(openai): improve rate limit handling with reset time tracking - feat(subscription): add expiry notification service - fix(urlvalidator): remove trailing slash from validated URLs - docs: update demo site domain Resolved conflicts: - deploy/docker-compose.yml: added TOTP_ENCRYPTION_KEY config - setting_service.go: keep TianShuAPI site name while adding new features Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -61,6 +61,18 @@ ADMIN_PASSWORD=
|
||||
JWT_SECRET=
|
||||
JWT_EXPIRE_HOUR=24
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# TOTP (2FA) Configuration
|
||||
# TOTP(双因素认证)配置
|
||||
# -----------------------------------------------------------------------------
|
||||
# IMPORTANT: Set a fixed encryption key for TOTP secrets. If left empty, a
|
||||
# random key will be generated on each startup, causing all existing TOTP
|
||||
# configurations to become invalid (users won't be able to login with 2FA).
|
||||
# Generate a secure key: openssl rand -hex 32
|
||||
# 重要:设置固定的 TOTP 加密密钥。如果留空,每次启动将生成随机密钥,
|
||||
# 导致现有的 TOTP 配置失效(用户无法使用双因素认证登录)。
|
||||
TOTP_ENCRYPTION_KEY=
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# Configuration File (Optional)
|
||||
# -----------------------------------------------------------------------------
|
||||
|
||||
@@ -403,6 +403,21 @@ jwt:
|
||||
# 令牌过期时间(小时,最大 24)
|
||||
expire_hour: 24
|
||||
|
||||
# =============================================================================
|
||||
# TOTP (2FA) Configuration
|
||||
# TOTP 双因素认证配置
|
||||
# =============================================================================
|
||||
totp:
|
||||
# IMPORTANT: Set a fixed encryption key for TOTP secrets.
|
||||
# 重要:设置固定的 TOTP 加密密钥。
|
||||
# If left empty, a random key will be generated on each startup, causing all
|
||||
# existing TOTP configurations to become invalid (users won't be able to
|
||||
# login with 2FA).
|
||||
# 如果留空,每次启动将生成随机密钥,导致现有的 TOTP 配置失效(用户无法使用
|
||||
# 双因素认证登录)。
|
||||
# Generate with / 生成命令: openssl rand -hex 32
|
||||
encryption_key: ""
|
||||
|
||||
# =============================================================================
|
||||
# LinuxDo Connect OAuth Login (SSO)
|
||||
# LinuxDo Connect OAuth 登录(用于 Sub2API 用户登录)
|
||||
|
||||
@@ -61,7 +61,25 @@ services:
|
||||
- JWT_SECRET=${JWT_SECRET:-}
|
||||
- JWT_EXPIRE_HOUR=${JWT_EXPIRE_HOUR:-24}
|
||||
|
||||
# Timezone
|
||||
# =======================================================================
|
||||
# TOTP (2FA) Configuration
|
||||
# =======================================================================
|
||||
# IMPORTANT: Set a fixed encryption key for TOTP secrets. If left empty,
|
||||
# a random key will be generated on each startup, causing all existing
|
||||
# TOTP configurations to become invalid (users won't be able to login
|
||||
# with 2FA).
|
||||
# Generate a secure key: openssl rand -hex 32
|
||||
- TOTP_ENCRYPTION_KEY=${TOTP_ENCRYPTION_KEY:-}
|
||||
|
||||
# =======================================================================
|
||||
# Timezone Configuration
|
||||
# This affects ALL time operations in the application:
|
||||
# - Database timestamps
|
||||
# - Usage statistics "today" boundary
|
||||
# - Subscription expiry times
|
||||
# - Log timestamps
|
||||
# Common values: Asia/Shanghai, America/New_York, Europe/London, UTC
|
||||
# =======================================================================
|
||||
- TZ=${TZ:-Asia/Shanghai}
|
||||
|
||||
# Gemini OAuth (可选)
|
||||
|
||||
Reference in New Issue
Block a user