feat: 重构模型和响应结构,优化用户和对象管理逻辑,添加 Dockerfile
This commit is contained in:
@@ -1,31 +1,33 @@
|
||||
from fastapi.security import OAuth2PasswordBearer
|
||||
from models.setting import Setting
|
||||
from models.database import get_session
|
||||
from datetime import datetime, timedelta, timezone
|
||||
from sqlalchemy import and_
|
||||
|
||||
import jwt
|
||||
from fastapi.security import OAuth2PasswordBearer
|
||||
|
||||
oauth2_scheme = OAuth2PasswordBearer(
|
||||
scheme_name='获取 JWT Bearer 令牌',
|
||||
description='用于获取 JWT Bearer 令牌,需要以表单的形式提交',
|
||||
tokenUrl="/api/user/session",
|
||||
)
|
||||
)
|
||||
|
||||
SECRET_KEY = ''
|
||||
|
||||
|
||||
async def load_secret_key() -> None:
|
||||
"""
|
||||
从数据库读取 JWT 的密钥。
|
||||
"""
|
||||
# 延迟导入以避免循环依赖
|
||||
from models.database import get_session
|
||||
from models.setting import Setting
|
||||
|
||||
global SECRET_KEY
|
||||
async for session in get_session():
|
||||
setting = await Setting.get(
|
||||
session,
|
||||
and_(Setting.type == "auth", Setting.name == "secret_key")
|
||||
(Setting.type == "auth") & (Setting.name == "secret_key")
|
||||
)
|
||||
if setting:
|
||||
SECRET_KEY = setting.value
|
||||
break
|
||||
|
||||
# 访问令牌
|
||||
def create_access_token(data: dict, expires_delta: timedelta | None = None) -> tuple[str, datetime]:
|
||||
|
||||
4
pkg/__init__.py
Normal file
4
pkg/__init__.py
Normal file
@@ -0,0 +1,4 @@
|
||||
# 延迟导入以避免循环依赖
|
||||
# JWT 和 lifespan 应在需要时直接从子模块导入
|
||||
# from .JWT import JWT
|
||||
# from .lifespan import lifespan
|
||||
@@ -18,11 +18,6 @@ debug: bool = os.getenv("DEBUG", "false").lower() in ("true", "1", "yes") or Fal
|
||||
if debug:
|
||||
log.info("Debug mode is enabled. This is not recommended for production use.")
|
||||
|
||||
host: str = os.getenv("HOST", "0.0.0.0")
|
||||
port: int = int(os.getenv("PORT", 5213))
|
||||
|
||||
log.info(f"Starting DiskNext Server {BackendVersion} on {host}:{port}")
|
||||
|
||||
database_url: str = os.getenv("DATABASE_URL", "sqlite+aiosqlite:///disknext.db")
|
||||
|
||||
tags_meta = [
|
||||
|
||||
Reference in New Issue
Block a user