diff --git a/auth/oauth.py b/auth/oauth.py index 5f778586..3cf2f763 100644 --- a/auth/oauth.py +++ b/auth/oauth.py @@ -679,6 +679,7 @@ async def oauth_login_http(request: Request) -> JSONResponse | RedirectResponse: async def oauth_callback_http(request: Request) -> JSONResponse | RedirectResponse: """HTTP handler для OAuth callback""" + logger.info("🔄 OAuth callback started") try: # 🚫 Блокируем запросы от ботов (GPTBot, crawlers) user_agent = request.headers.get("user-agent", "").lower() @@ -871,6 +872,7 @@ async def oauth_callback_http(request: Request) -> JSONResponse | RedirectRespon logger.info(f"🔄 Step 3: Creating or updating user for {provider}...") try: author = await _create_or_update_user(provider, profile) + logger.info("✅ Step 3 completed: User created/updated successfully") except Exception as e: logger.error(f"❌ Exception while creating/updating user for {provider}: {e}", exc_info=True) raise # Re-raise для обработки в основном except блоке @@ -900,6 +902,7 @@ async def oauth_callback_http(request: Request) -> JSONResponse | RedirectRespon "ip": request.client.host if hasattr(request, "client") and request.client else None, }, ) + logger.info("✅ Step 4 completed: Session token created successfully") except Exception as e: logger.error(f"❌ Exception while creating session token for {provider}: {e}", exc_info=True) raise # Re-raise для обработки в основном except блоке @@ -960,6 +963,7 @@ async def oauth_callback_http(request: Request) -> JSONResponse | RedirectRespon logger.info(f" - User ID: {author.id}") # 🔗 Редиректим с токеном в URL + logger.info("🔄 Step 5: Creating redirect response...") response = RedirectResponse(url=final_redirect_url, status_code=307) logger.info(f"✅ OAuth: токен передан в URL для user_id={author.id}") @@ -972,7 +976,9 @@ async def oauth_callback_http(request: Request) -> JSONResponse | RedirectRespon logger.info(f" - URL length: {len(final_redirect_url)}") logger.info(f" - Contains token: {'access_token=' in final_redirect_url}") + logger.info("✅ Step 5 completed: Redirect response created successfully") logger.info(f"✅ OAuth успешно завершен для {provider}, user_id={author.id}") + logger.info("🔄 Returning redirect response to client...") return response except Exception as e: @@ -993,11 +999,11 @@ async def oauth_callback_http(request: Request) -> JSONResponse | RedirectRespon if not isinstance(fallback_redirect, str): fallback_redirect = FRONTEND_URL - # Для testing.discours.io используем специальный формат + # Для testing.discours.io используем главную страницу (так как /oauth редиректит на /) if "testing.discours.io" in fallback_redirect: from urllib.parse import quote - error_url = f"https://testing.discours.io/oauth?error=auth_failed&provider={provider}&redirect_url={quote(fallback_redirect)}" + error_url = f"https://testing.discours.io/?error=auth_failed&provider={provider}&redirect_url={quote(fallback_redirect)}" else: error_url = f"{fallback_redirect}?error=auth_failed&provider={provider}"