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 ציבורי, מועמד מרשימת ה-proxy של HTTP מספק את הכתובת במפת ה-proxy של הסשן הזה.

קראו ל-fetch_token ולפעולות על משאבים מוגנים בסשן הזה. ארגומנט proxies שנמסר רק ל-fetch_token חל על אותה החלפה; הוא אינו מתקין מסלול קבוע לקריאות מאוחרות יותר.

הביקור בעמוד ההרשאה בדפדפן משתמש במסלול של הדפדפן. ‏Python מבצע את בקשת האסימון בנפרד, ולכן הצלחה בדפדפן אינה מגדירה את הסשן הזה.

האינטגרציה של Requests עם הסביבה יכולה להשפיע על בחירת ה-proxy של הסשן. עבור מסלול קפדני בבעלות היישום, בדקו את trust_env; השבתתו מחייבת גם אספקה מפורשת של הגדרות CA או אימות נדרשות.

שגיאת OAuth שמוחזרת מ-endpoint של אסימון עשויה להגיע דרך proxy שעובד. שמרו את התגובה בנפרד מאימות ה-proxy, שפרטיו שונים מסודות לקוח ומאסימוני גישה.

מאמרים קשורים