This commit is contained in:
@@ -787,7 +787,12 @@ async def oauth_callback_http(request: Request) -> JSONResponse | RedirectRespon
|
||||
logger.error(f"❌ Exception while creating session token for {provider}: {e}", exc_info=True)
|
||||
raise # Re-raise для обработки в основном except блоке
|
||||
|
||||
if not session_token:
|
||||
logger.error(f"❌ Session token is empty for {provider}")
|
||||
raise ValueError("Session token creation failed")
|
||||
|
||||
logger.info(f"✅ Session token created for {provider}: token_length={len(session_token)}")
|
||||
logger.info(f"🔧 Session token preview: {session_token[:20]}..." if len(session_token) > 20 else f"🔧 Session token: {session_token}")
|
||||
|
||||
# Получаем redirect_uri из OAuth данных
|
||||
redirect_uri = oauth_data.get("redirect_uri", FRONTEND_URL)
|
||||
@@ -844,6 +849,7 @@ async def oauth_callback_http(request: Request) -> JSONResponse | RedirectRespon
|
||||
response = RedirectResponse(url=final_redirect_url, status_code=307)
|
||||
|
||||
# 🍪 Устанавливаем httpOnly cookie для безопасности
|
||||
cookie_domain = ".discours.io" if "discours.io" in parsed_redirect.netloc else None
|
||||
response.set_cookie(
|
||||
SESSION_COOKIE_NAME,
|
||||
session_token,
|
||||
@@ -852,10 +858,12 @@ async def oauth_callback_http(request: Request) -> JSONResponse | RedirectRespon
|
||||
samesite=SESSION_COOKIE_SAMESITE,
|
||||
max_age=SESSION_COOKIE_MAX_AGE,
|
||||
path="/", # Важно: устанавливаем path="/" для доступности cookie во всех путях
|
||||
domain=".discours.io" if "discours.io" in parsed_redirect.netloc else None, # Поддержка поддоменов
|
||||
domain=cookie_domain, # Поддержка поддоменов
|
||||
)
|
||||
|
||||
logger.info(f"OAuth успешно завершен для {provider}, user_id={author.id}")
|
||||
logger.info(f"🍪 Cookie установлен: name={SESSION_COOKIE_NAME}, domain={cookie_domain}, secure={SESSION_COOKIE_SECURE}")
|
||||
logger.info(f"🔗 Final redirect: {final_redirect_url}")
|
||||
logger.info(f"✅ OAuth успешно завершен для {provider}, user_id={author.id}")
|
||||
return response
|
||||
|
||||
except Exception as e:
|
||||
|
||||
Reference in New Issue
Block a user