Изменил способ авторизации

This commit is contained in:
urec56 2024-06-03 13:52:07 +05:00
parent 115a9450de
commit 283dfc8c68
2 changed files with 9 additions and 10 deletions

View file

@ -1,4 +1,5 @@
from fastapi import Depends, Request, Response, WebSocket from fastapi import Depends, WebSocket
from fastapi.security import HTTPBearer
from jose import JWTError, jwt, ExpiredSignatureError from jose import JWTError, jwt, ExpiredSignatureError
from app.config import settings from app.config import settings
@ -11,18 +12,19 @@ from app.exceptions import (
) )
from app.services.user_service import UserService from app.services.user_service import UserService
from app.unit_of_work import UnitOfWork from app.unit_of_work import UnitOfWork
from app.users.auth import create_access_token, VERIFICATED_USER from app.users.auth import VERIFICATED_USER
from app.users.schemas import SUser from app.users.schemas import SUser
auth_schema = HTTPBearer()
def get_token(request: Request) -> str:
token = request.cookies.get("black_phoenix_access_token") def get_token(token=Depends(auth_schema)) -> str:
if not token: if not token:
raise TokenAbsentException raise TokenAbsentException
return token return token.credentials
async def get_current_user(response: Response, token: str = Depends(get_token), uow=Depends(UnitOfWork)) -> SUser: async def get_current_user(token: str = Depends(get_token), uow=Depends(UnitOfWork)) -> SUser:
try: try:
payload = jwt.decode(token, settings.SECRET_KEY, settings.ALGORITHM) payload = jwt.decode(token, settings.SECRET_KEY, settings.ALGORITHM)
except ExpiredSignatureError: except ExpiredSignatureError:
@ -38,8 +40,6 @@ async def get_current_user(response: Response, token: str = Depends(get_token),
if not user: if not user:
raise UserIsNotPresentException raise UserIsNotPresentException
access_token = create_access_token({"sub": str(user.id)})
response.set_cookie(key="black_phoenix_access_token", value=access_token, httponly=True, secure=True, samesite="none")
return user return user

View file

@ -131,8 +131,7 @@ async def email_verification(user_code: str, uow=Depends(UnitOfWork)):
async def login_user(response: Response, user_data: SUserLogin, uow=Depends(UnitOfWork)): async def login_user(response: Response, user_data: SUserLogin, uow=Depends(UnitOfWork)):
user = await AuthService.authenticate_user(uow, user_data.email_or_username, user_data.password) user = await AuthService.authenticate_user(uow, user_data.email_or_username, user_data.password)
access_token = create_access_token({"sub": str(user.id)}) access_token = create_access_token({"sub": str(user.id)})
response.set_cookie("black_phoenix_access_token", access_token, httponly=True, secure=True, samesite="none") response.headers["Authorization"] = f"Bearer {access_token}"
return {"access_token": access_token}
@router.post( @router.post(