requests-oauthlib: پیش از fetch_token پروکسی OAuth2Session را تنظیم کنید
همان نشست آگاه از پروکسی را برای دریافت توکن و منابع محافظتشده به کار ببرید و جریان OAuth موجود را دستنخورده نگه دارید.
from requests_oauthlib import OAuth2Session
session = OAuth2Session(client_id=client_id, redirect_uri=redirect_uri)
session.proxies.update({
'http': 'http://proxy.example:8080',
'https': 'http://proxy.example:8080',
})OAuth2Session نشست Session در Requests را گسترش میدهد. آن را با ثبتنام مشتری موجود برنامه، redirect URI، state و scopes بسازید و سپس مسیر آن را پیش از تبادل توکن تنظیم کنید. برای یک مسیر HTTP عمومی، یکی از گزینههای فهرست پروکسی HTTP نشانی را در نقشه پروکسی این نشست فراهم میکند.
fetch_token و عملیات منابع محافظتشده را روی این نشست فراخوانی کنید. آرگومان proxies که فقط به fetch_token داده شود برای همان تبادل اعمال میشود؛ مسیر ماندگاری برای فراخوانیهای بعدی نصب نمیکند.
بازدید صفحه مجوز در مرورگر از مسیر مرورگر استفاده میکند. Python درخواست توکن را جداگانه انجام میدهد، بنابراین موفقیت در مرورگر این نشست را پیکربندی نمیکند.
یکپارچگی Requests با محیط میتواند انتخاب پروکسی نشست را تحت تأثیر قرار دهد. برای مسیر سختگیرانهای که برنامه مالک آن است، trust_env را بررسی کنید؛ غیرفعال کردن آن همچنین مستلزم ارائه صریح تنظیمات لازم CA یا احراز هویت است.
خطای OAuth که یک endpoint توکن برمیگرداند ممکن است از طریق یک پروکسی سالم برسد. آن پاسخ را جدا از احراز هویت پروکسی نگه دارید، زیرا اعتبارنامههای آن با client secret و access token تفاوت دارد.