oauth-fixing
All checks were successful
Deploy on push / deploy (push) Successful in 2m47s

This commit is contained in:
2025-09-29 08:53:39 +03:00
parent 327135c09b
commit b4b41fde08
2 changed files with 7 additions and 49 deletions

View File

@@ -921,7 +921,12 @@ async def oauth_callback_http(request: Request) -> JSONResponse | RedirectRespon
redirect_uri = FRONTEND_URL
# 🎯 Стандартный OAuth flow: токен в URL для фронтенда
from urllib.parse import parse_qs, urlencode, urlparse, urlunparse
from urllib.parse import parse_qs, unquote, urlencode, urlparse, urlunparse
# 🔧 Декодируем redirect_uri если он URL-encoded
if "%3A" in redirect_uri or "%2F" in redirect_uri:
redirect_uri = unquote(redirect_uri)
logger.info(f"🔧 Decoded redirect_uri: {redirect_uri}")
parsed_url = urlparse(redirect_uri)

View File

@@ -95,41 +95,11 @@ def console_filter(record: logging.LogRecord) -> bool:
for phrase in [
"Требуется авторизация",
"AuthorizationError",
"GraphQL request:",
"Traceback (most recent call last):",
"graphql.error.graphql_error.GraphQLError: Требуется авторизация",
"load_drafts",
"GetUserDocuments",
"GetDrafts",
"During handling of the above exception",
'File "/usr/local/lib/python3.13/site-packages/graphql/execution/execute.py"',
'File "/app/services/auth.py"',
"await_result",
"handle_field_error",
"await gather",
"get_results",
"raise error",
"return_type, field_nodes, info, path, await result",
'raise AuthorizationError("Требуется авторизация")',
"decorated_function",
]
):
return False # Не показываем в консоли ошибки авторизации
# Подавляем повторяющиеся Ariadne логи в консоли
if record.name in ["ariadne", "graphql"]:
message = record.getMessage()
if any(
phrase in message
for phrase in [
"Требуется авторизация",
"AuthorizationError",
"load_drafts",
"GraphQL request:",
]
):
return False
return True
@@ -276,24 +246,7 @@ class AriadneAuthFilter(logging.Filter):
def filter(self, record: logging.LogRecord) -> bool:
message = record.getMessage()
# Полностью блокируем логи связанные с авторизацией в Ariadne
return not any(
phrase in message
for phrase in [
"Требуется авторизация",
"AuthorizationError",
"GraphQL request:",
"decorated_function",
"load_drafts",
"GetUserDocuments",
"GetDrafts",
"Traceback",
"await gather",
"handle_field_error",
"await_result",
"During handling",
"raise error",
]
)
return not any(phrase in message for phrase in ["Требуется авторизация", "AuthorizationError"])
# Применяем фильтр к Ariadne и GraphQL логгерам