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

OAuth2Session на Requests наследява поведението на 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 я приема.

Подобни статии