circular-fix
Some checks failed
Deploy on push / deploy (push) Failing after 17s

This commit is contained in:
2025-08-17 16:33:54 +03:00
parent bc8447a444
commit e78e12eeee
65 changed files with 3304 additions and 1051 deletions

View File

@@ -1,6 +1,6 @@
import datetime
import logging
from typing import Any, Dict, Optional
from typing import Any, Dict
import jwt
@@ -15,9 +15,9 @@ class JWTCodec:
@staticmethod
def encode(
payload: Dict[str, Any],
secret_key: Optional[str] = None,
algorithm: Optional[str] = None,
expiration: Optional[datetime.datetime] = None,
secret_key: str | None = None,
algorithm: str | None = None,
expiration: datetime.datetime | None = None,
) -> str | bytes:
"""
Кодирует payload в JWT токен.
@@ -40,14 +40,14 @@ class JWTCodec:
# Если время истечения не указано, устанавливаем дефолтное
if not expiration:
expiration = datetime.datetime.now(datetime.timezone.utc) + datetime.timedelta(
expiration = datetime.datetime.now(datetime.UTC) + datetime.timedelta(
days=JWT_REFRESH_TOKEN_EXPIRE_DAYS
)
logger.debug(f"[JWTCodec.encode] Время истечения не указано, устанавливаем срок: {expiration}")
# Формируем payload с временными метками
payload.update(
{"exp": int(expiration.timestamp()), "iat": datetime.datetime.now(datetime.timezone.utc), "iss": JWT_ISSUER}
{"exp": int(expiration.timestamp()), "iat": datetime.datetime.now(datetime.UTC), "iss": JWT_ISSUER}
)
logger.debug(f"[JWTCodec.encode] Сформирован payload: {payload}")
@@ -55,8 +55,7 @@ class JWTCodec:
try:
# Используем PyJWT для кодирования
encoded = jwt.encode(payload, secret_key, algorithm=algorithm)
token_str = encoded.decode("utf-8") if isinstance(encoded, bytes) else encoded
return token_str
return encoded.decode("utf-8") if isinstance(encoded, bytes) else encoded
except Exception as e:
logger.warning(f"[JWTCodec.encode] Ошибка при кодировании JWT: {e}")
raise
@@ -64,8 +63,8 @@ class JWTCodec:
@staticmethod
def decode(
token: str,
secret_key: Optional[str] = None,
algorithms: Optional[list] = None,
secret_key: str | None = None,
algorithms: list | None = None,
) -> Dict[str, Any]:
"""
Декодирует JWT токен.
@@ -87,8 +86,7 @@ class JWTCodec:
try:
# Используем PyJWT для декодирования
decoded = jwt.decode(token, secret_key, algorithms=algorithms)
return decoded
return jwt.decode(token, secret_key, algorithms=algorithms)
except jwt.ExpiredSignatureError:
logger.warning("[JWTCodec.decode] Токен просрочен")
raise