Verifique o import do Authlib antes de escolher um argumento proxy. As integrações Requests e HTTPX dele expõem uma configuração de transporte diferente.

O OAuth2Session do Requests herda o comportamento de Session do 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",
})

A integração assíncrona correspondente do HTTPX recebe o argumento proxy no nível do cliente durante a construção:

from authlib.integrations.httpx_client import AsyncOAuth2Client

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

O exemplo HTTPX usa a opção proxy singular suportada pelo Authlib 1.9.1. Essa integração repassa as opções de transporte reconhecidas ao seu cliente HTTP subjacente. Um dicionário proxies no estilo Requests não é um argumento de construtor intercambiável. Para endpoints públicos de token e API em uma rota de proxy pública permitida, a lista de proxies HTTP oferece candidatos para as URLs de proxy HTTP dos dois exemplos.

Mantenha o registro OAuth existente da aplicação, o URI de redirecionamento, os escopos e o tratamento de tokens ao aplicar qualquer uma das configurações. Use o cliente configurado para as operações de token e de recursos protegidos, e feche-o pelo seu ciclo de vida síncrono ou assíncrono habitual.

Os auxiliares do framework podem criar esses clientes em nome da aplicação. Inspecione a integração do auxiliar e as opções de construção do cliente antes de passar argumentos no momento da requisição. Uma palavra-chave proxies aceita por uma requisição de token do Requests não prova que uma requisição HTTPX assíncrona a aceite.

Artigos relacionados