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 リクエストもそれを受け付けることを示しません。

関連記事