Проверьте импорт Authlib, прежде чем выбирать аргумент прокси. Его интеграции Requests и HTTPX предоставляют разную конфигурацию транспорта.

Requests OAuth2Session наследует поведение Session в Requests:

from authlib.integrations.requests_client import OAuth2Session

client = OAuth2Session(client_id=client_id)
client.proxies.update({
    "http": "http://proxy.example.net:8080",
    "https": "http://proxy.example.net:8080",
})

Соответствующая асинхронная интеграция HTTPX принимает аргумент прокси на уровне клиента при создании:

from authlib.integrations.httpx_client import AsyncOAuth2Client

client = AsyncOAuth2Client(
    client_id=client_id,
    proxy="http://proxy.example.net:8080",
)

Пример с HTTPX использует единственную опцию proxy, поддерживаемую Authlib 1.9.1. Эта интеграция передаёт распознанные параметры транспорта своему нижележащему HTTP-клиенту. Словарь proxies в стиле Requests не является взаимозаменяемым аргументом конструктора. Для публичных конечных точек токенов и API на разрешённом публичном прокси-маршруте список HTTP-прокси предлагает кандидатов для URL HTTP-прокси обоих примеров.

Сохраняйте существующую регистрацию OAuth приложения, redirect URI, scopes и обработку токенов при применении любой из конфигураций. Используйте настроенный клиент для операций с токенами и защищёнными ресурсами и закрывайте его через его обычный синхронный или асинхронный жизненный цикл.

Помощники фреймворка могут создавать этих клиентов от имени приложения. Проверьте интеграцию помощника и параметры создания клиента, прежде чем передавать аргументы во время запроса. Ключевое слово proxies, принимаемое запросом токена Requests, не доказывает, что его принимает асинхронный запрос HTTPX.

Похожие статьи