Настройки прокси в Authlib: Requests против HTTPX
Выберите прокси сеанса Requests или аргумент прокси клиента HTTPX в зависимости от используемой интеграции Authlib.
Проверьте импорт 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.