Compruebe la importación de Authlib antes de elegir un argumento de proxy. Sus integraciones Requests y HTTPX exponen una configuración de transporte distinta.

El OAuth2Session de Requests hereda el comportamiento de Session de 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",
})

La integración asíncrona correspondiente de HTTPX recibe el argumento de proxy a nivel de cliente durante la construcción:

from authlib.integrations.httpx_client import AsyncOAuth2Client

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

El ejemplo de HTTPX usa la opción proxy singular que admite Authlib 1.9.1. Esa integración pasa las opciones de transporte reconocidas a su cliente HTTP subyacente. Un diccionario proxies al estilo de Requests no es un argumento de constructor intercambiable. Para los puntos de conexión públicos de token y API en una ruta de proxy pública permitida, la lista de proxies HTTP ofrece candidatos para las URL de proxy HTTP de ambos ejemplos.

Conserve el registro OAuth existente de la aplicación, el URI de redirección, los ámbitos y el manejo de tokens al aplicar cualquiera de las dos configuraciones. Use el cliente configurado para las operaciones de token y de recursos protegidos, y ciérrelo mediante su ciclo de vida síncrono o asíncrono habitual.

Los asistentes del framework pueden crear estos clientes en nombre de la aplicación. Inspeccione la integración del asistente y las opciones de construcción del cliente antes de pasar argumentos en tiempo de petición. Una palabra clave proxies aceptada por una petición de token de Requests no demuestra que una petición asíncrona de HTTPX la acepte.

Artículos relacionados