diff --git a/app/core/usecases/auth_service.py b/app/core/usecases/auth_service.py index 765376c..1bd82c4 100644 --- a/app/core/usecases/auth_service.py +++ b/app/core/usecases/auth_service.py @@ -18,6 +18,7 @@ ACCESS_TOKEN_EXPIRE_MINUTES = 30 oauth2_scheme = OAuth2PasswordBearer(tokenUrl="token") + def create_access_token(data: dict, expires_delta: Optional[timedelta] = None): to_encode = data.copy() if expires_delta: @@ -27,6 +28,7 @@ def create_access_token(data: dict, expires_delta: Optional[timedelta] = None): to_encode.update({"exp": expire}) return jwt.encode(to_encode, SECRET_KEY, algorithm=ALGORITHM) + def verify_token(token: str, db: Session = Depends(get_db)): credentials_exception = HTTPException( status_code=401, @@ -46,5 +48,5 @@ def verify_token(token: str, db: Session = Depends(get_db)): if user is None: raise credentials_exception return user - except jwt.PyJWTError: # Обрабатываем исключения от PyJWT + except jwt.PyJWTError: raise credentials_exception diff --git a/app/infrastructure/fastapi/accessory_routes.py b/app/infrastructure/fastapi/accessory_routes.py index 13b2cfb..7add4cf 100644 --- a/app/infrastructure/fastapi/accessory_routes.py +++ b/app/infrastructure/fastapi/accessory_routes.py @@ -3,14 +3,16 @@ from typing import List from fastapi import APIRouter, HTTPException, Depends from sqlalchemy.orm import Session +from app.core.usecases.auth_service import verify_token from app.infrastructure.database.dependencies import get_db from app.core.entities.accessory import AccessoryEntity from app.core.usecases.accessory_service import AccessoriesService +from app.infrastructure.database.models.users import User router = APIRouter() @router.get("/accessories", response_model=List[AccessoryEntity]) -def read_accessories(db: Session = Depends(get_db)): +def read_accessories(db: Session = Depends(get_db), current_user: User = Depends(verify_token)): service = AccessoriesService(db) return service.get_all_accessories()