This commit is contained in:
Андрей Дувакин 2024-10-05 09:31:27 +05:00
parent 87f69be548
commit 5fb7b84012
2 changed files with 6 additions and 2 deletions

View File

@ -18,6 +18,7 @@ ACCESS_TOKEN_EXPIRE_MINUTES = 30
oauth2_scheme = OAuth2PasswordBearer(tokenUrl="token") oauth2_scheme = OAuth2PasswordBearer(tokenUrl="token")
def create_access_token(data: dict, expires_delta: Optional[timedelta] = None): def create_access_token(data: dict, expires_delta: Optional[timedelta] = None):
to_encode = data.copy() to_encode = data.copy()
if expires_delta: if expires_delta:
@ -27,6 +28,7 @@ def create_access_token(data: dict, expires_delta: Optional[timedelta] = None):
to_encode.update({"exp": expire}) to_encode.update({"exp": expire})
return jwt.encode(to_encode, SECRET_KEY, algorithm=ALGORITHM) return jwt.encode(to_encode, SECRET_KEY, algorithm=ALGORITHM)
def verify_token(token: str, db: Session = Depends(get_db)): def verify_token(token: str, db: Session = Depends(get_db)):
credentials_exception = HTTPException( credentials_exception = HTTPException(
status_code=401, status_code=401,
@ -46,5 +48,5 @@ def verify_token(token: str, db: Session = Depends(get_db)):
if user is None: if user is None:
raise credentials_exception raise credentials_exception
return user return user
except jwt.PyJWTError: # Обрабатываем исключения от PyJWT except jwt.PyJWTError:
raise credentials_exception raise credentials_exception

View File

@ -3,14 +3,16 @@ from typing import List
from fastapi import APIRouter, HTTPException, Depends from fastapi import APIRouter, HTTPException, Depends
from sqlalchemy.orm import Session from sqlalchemy.orm import Session
from app.core.usecases.auth_service import verify_token
from app.infrastructure.database.dependencies import get_db from app.infrastructure.database.dependencies import get_db
from app.core.entities.accessory import AccessoryEntity from app.core.entities.accessory import AccessoryEntity
from app.core.usecases.accessory_service import AccessoriesService from app.core.usecases.accessory_service import AccessoriesService
from app.infrastructure.database.models.users import User
router = APIRouter() router = APIRouter()
@router.get("/accessories", response_model=List[AccessoryEntity]) @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) service = AccessoriesService(db)
return service.get_all_accessories() return service.get_all_accessories()