All checks were successful
Lint project / lint (push) Successful in 1m41s
- Добавлен класс UserVerifySchema для валидации данных пользователя, наследующий GetUserByID и GetUserByEmail. - Обновлена модель AuthUser для регистрации пользователя. - Добавлены роуты logout и get-user для работы с аутентификацией. - Создан новый модуль utils с функцией get_token_from_cookies для извлечения токена из куки. - Добавлена логика для выхода пользователя и получения информации об авторизованном пользователе в сервисах и роутах. - Обновлены схемы и зависимости в модуле handlers и managers для работы с аутентификацией.
28 lines
885 B
Python
28 lines
885 B
Python
"""
|
||
Проект: Lkeep
|
||
Автор: Иван Ашихмин
|
||
Год: 2025
|
||
Специально для проекта "Код на салфетке"
|
||
https://pressanybutton.ru/category/servis-na-fastapi/
|
||
"""
|
||
|
||
from fastapi import HTTPException
|
||
from starlette import status
|
||
from starlette.requests import Request
|
||
|
||
|
||
async def get_token_from_cookies(request: Request) -> str:
|
||
"""
|
||
Получает токен из куки запроса.
|
||
|
||
:param request: Объект HTTP-запроса.
|
||
:type request: Request
|
||
:return: Токен из cookies.
|
||
:rtype: str
|
||
:raises HTTPException: Если в запросе отсутствует cookie с ключом "Authorization".
|
||
"""
|
||
token = request.cookies.get("Authorization")
|
||
if token is None:
|
||
raise HTTPException(status_code=status.HTTP_401_UNAUTHORIZED, detail="Token is missing")
|
||
return token
|