From 9976d014d9cca9a40d3922cfba6acc565be8b567 Mon Sep 17 00:00:00 2001 From: Lan Date: Wed, 3 Jun 2026 02:44:42 +0800 Subject: [PATCH] feat: add admin auth compatibility endpoints --- apps/admin/dependencies.py | 12 ++++++++++++ apps/admin/views.py | 11 +++++++++++ 2 files changed, 23 insertions(+) diff --git a/apps/admin/dependencies.py b/apps/admin/dependencies.py index 205779b..e648628 100644 --- a/apps/admin/dependencies.py +++ b/apps/admin/dependencies.py @@ -85,6 +85,18 @@ def _require_admin_payload(authorization: str) -> dict: return payload +def get_admin_session(authorization: str = Header(default=None)) -> dict: + token = _extract_bearer_token(authorization) + payload = _require_admin_payload(authorization) + return { + "id": "admin", + "username": "admin", + "token": token, + "token_type": "Bearer", + "expires_at": payload.get("exp"), + } + + ADMIN_PUBLIC_ENDPOINTS = {("POST", "/admin/login")} diff --git a/apps/admin/views.py b/apps/admin/views.py index 9501c16..60ba200 100644 --- a/apps/admin/views.py +++ b/apps/admin/views.py @@ -8,6 +8,7 @@ from fastapi import APIRouter, Depends, HTTPException from apps.admin.services import FileService, ConfigService, LocalFileService from apps.admin.dependencies import ( admin_required, + get_admin_session, get_file_service, get_config_service, get_local_file_service, @@ -33,6 +34,16 @@ async def login(data: LoginData): return APIResponse(detail={"token": token, "token_type": "Bearer"}) +@admin_api.get("/verify") +async def verify_admin(session: dict = Depends(get_admin_session)): + return APIResponse(detail=session) + + +@admin_api.post("/logout") +async def logout_admin(): + return APIResponse(detail={"ok": True}) + + @admin_api.get("/dashboard") async def dashboard(): all_codes = await FileCodes.all()