from fastapi import Depends, HTTPException, status from fastapi.security import HTTPBearer, HTTPAuthorizationCredentials from app.core.config import settings from sqlalchemy.orm import Session from app.core.database import get_db from app.services.session_service import SessionService security = HTTPBearer() def verify_token(credentials: HTTPAuthorizationCredentials = Depends(security), db: Session = Depends(get_db)): """ 全局鉴权依赖 """ user = session_service.get_user_by_token(db, credentials.credentials) if not user: raise HTTPException( status_code=401, detail="Invalid or expired session token", ) return user def get_current_user( credentials: HTTPAuthorizationCredentials = Depends(security), db: Session = Depends(get_db) ): token = credentials.credentials user = SessionService().get_user_by_token(db, token) if not user: raise HTTPException( status_code=status.HTTP_401_UNAUTHORIZED, detail="Invalid or expired token" ) return user