Authlib-proxyinstellingen: Requests versus HTTPX
Kies Requests-sessieproxies of het proxyargument van de HTTPX-client, afhankelijk van de gebruikte Authlib-integratie.
Controleer de Authlib-import voordat u een proxyargument kiest. De Requests- en HTTPX-integraties bieden een verschillende transportconfiguratie.
De Requests OAuth2Session erft het Session-gedrag van 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",
})
De bijbehorende asynchrone HTTPX-integratie neemt het proxyargument op clientniveau over bij de constructie:
from authlib.integrations.httpx_client import AsyncOAuth2Client
client = AsyncOAuth2Client(
client_id=client_id,
proxy="http://proxy.example.net:8080",
)
Het HTTPX-voorbeeld gebruikt de enkelvoudige proxy-optie die Authlib 1.9.1 ondersteunt. Die integratie geeft herkende transportopties door aan de onderliggende HTTP-client. Een proxies-woordenboek in Requests-stijl is geen uitwisselbaar constructorargument. Voor openbare token- en API-eindpunten op een toegestane openbare proxyroute biedt de HTTP-proxylijst kandidaten voor de HTTP-proxy-URL's van beide voorbeelden.
Behoud de bestaande OAuth-registratie van de applicatie, de redirect-URI, de scopes en de tokenafhandeling bij het toepassen van een van beide configuraties. Gebruik de geconfigureerde client voor token- en beveiligde-resourcebewerkingen, en sluit deze via zijn normale synchrone of asynchrone levenscyclus.
Frameworkhelpers kunnen deze clients namens de applicatie aanmaken. Onderzoek de integratie van de helper en de opties voor clientconstructie voordat u argumenten op verzoekmoment doorgeeft. Een proxies-trefwoord dat een Requests-tokenverzoek accepteert, bewijst niet dat een asynchroon HTTPX-verzoek het accepteert.