Authlib のプロキシ設定: Requests と HTTPX
使用している Authlib の統合に応じて、Requests のセッションプロキシか HTTPX クライアントの proxy 引数を選びます。
proxy 引数を選ぶ前に Authlib の import を確認します。Requests と HTTPX の統合ではトランスポート設定が異なります。
Requests の OAuth2Session は Requests の Session の動作 を継承します。
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 統合では、構築時にクライアント単位の proxy 引数を受け取ります。
from authlib.integrations.httpx_client import AsyncOAuth2Client
client = AsyncOAuth2Client(
client_id=client_id,
proxy="http://proxy.example.net:8080",
)
HTTPX の例では Authlib 1.9.1 がサポートする単数形の proxy オプションを使います。この統合は認識されたトランスポートオプションを基盤の HTTP クライアントに渡します。Requests 形式の proxies 辞書は置き換え可能なコンストラクタ引数ではありません。許可された公開プロキシ経路で公開 token と API のエンドポイントを使う場合、HTTP プロキシ一覧 がどちらの例の HTTP proxy URL の候補も提供します。
どちらの設定を適用する場合も、アプリケーション既存の OAuth 登録、redirect URI、scopes、token の扱いを維持します。設定済みのクライアントを token と保護リソースの操作に使い、通常の同期または非同期のライフサイクルで閉じます。
フレームワークのヘルパーがアプリケーションに代わってこれらのクライアントを作ることがあります。リクエスト時の引数を渡す前に、ヘルパーの統合とクライアント構築のオプションを確認します。Requests の token リクエストが受け付ける proxies キーワードは、非同期の HTTPX リクエストもそれを受け付けることを示しません。