""" 认证依赖函数 """ from fastapi import Depends, HTTPException, Request from fastapi.security import HTTPBearer, HTTPAuthorizationCredentials from app.services.jwt_token import verify_and_refresh_token import logging logger = logging.getLogger(__name__) security = HTTPBearer() async def get_current_user_with_refresh( request: Request, credentials: HTTPAuthorizationCredentials = Depends(security), ) -> dict: token = credentials.credentials payload, new_token = verify_and_refresh_token(token) if not payload: raise HTTPException(status_code=401, detail="无效的访问令牌") if new_token: request.state.new_token = new_token return payload async def get_current_user( credentials: HTTPAuthorizationCredentials = Depends(security), ) -> dict: from app.services.jwt_token import verify_token token = credentials.credentials payload = verify_token(token) if not payload: raise HTTPException(status_code=401, detail="无效的访问令牌") return payload