Configurações de proxy no Authlib: Requests versus HTTPX
Escolha os proxies de sessão do Requests ou o argumento proxy do cliente HTTPX conforme a integração Authlib usada.
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.