oauth-instruct
All checks were successful
Deploy on push / deploy (push) Successful in 7m13s

This commit is contained in:
2025-09-23 21:34:48 +03:00
parent c1a7902937
commit 9d4e24732e
6 changed files with 140 additions and 6 deletions

View File

@@ -407,7 +407,7 @@ async def oauth_login(_: None, _info: GraphQLResolveInfo, provider: str, callbac
}
await store_oauth_state(state, oauth_data)
# Используем URL из фронтенда для callback
# Используем URL из фронтенда для callback - для фронтенда
oauth_callback_uri = f"{callback_data['base_url']}oauth/{provider}/callback"
try:
@@ -545,7 +545,7 @@ async def oauth_login_http(request: Request) -> JSONResponse | RedirectResponse:
}
await store_oauth_state(state, oauth_data)
# URL для callback
# URL для callback - для фронтенда
callback_uri = f"{FRONTEND_URL}oauth/{provider}/callback"
# 🔍 Создаем redirect URL вручную (обходим использование request.session в authlib)
@@ -588,6 +588,11 @@ async def oauth_callback_http(request: Request) -> JSONResponse | RedirectRespon
if not provider:
return JSONResponse({"error": "No provider in OAuth state"}, status_code=400)
# Дополнительная проверка провайдера из path параметров (для старого формата)
provider_from_path = request.path_params.get("provider")
if provider_from_path and provider_from_path != provider:
return JSONResponse({"error": "Provider mismatch"}, status_code=400)
# Используем существующую логику
client = oauth.create_client(provider)
if not client: