This commit is contained in:
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user