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 สร้างมันด้วย client registration, redirect URI, state และ scopes ที่มีอยู่ของแอป จากนั้นกำหนดเส้นทางก่อนการแลกเปลี่ยนโทเค็น สำหรับเส้นทาง HTTP สาธารณะ ผู้สมัครจากรายการพร็อกซี HTTPจะให้ที่อยู่ในแผนผังพร็อกซีของเซสชันนี้

เรียก fetch_token และการดำเนินการกับทรัพยากรที่ได้รับการป้องกันบนเซสชันนี้ อาร์กิวเมนต์ proxies ที่ส่งให้เฉพาะ fetch_token มีผลกับการแลกเปลี่ยนนั้นเท่านั้น ไม่ได้ติดตั้งเส้นทางถาวรสำหรับการเรียกครั้งถัดไป

การเข้าชมหน้าอนุญาตในเบราว์เซอร์ใช้เส้นทางของเบราว์เซอร์ Python ทำคำขอโทเค็นแยกต่างหาก ความสำเร็จในเบราว์เซอร์จึงไม่ได้กำหนดค่าเซสชันนี้

การผสานรวม Requests กับสภาพแวดล้อมอาจส่งผลต่อการเลือกพร็อกซีของเซสชัน สำหรับเส้นทางที่เข้มงวดซึ่งแอปเป็นเจ้าของ ให้ตรวจสอบ trust_env การปิดใช้งานยังต้องระบุการตั้งค่า CA หรือการรับรองความถูกต้องที่จำเป็นอย่างชัดเจน

ข้อผิดพลาด OAuth ที่ endpoint ของโทเค็นส่งกลับมาอาจมาทางพร็อกซีที่ทำงานอยู่ เก็บการตอบสนองนั้นแยกจากการรับรองความถูกต้องของพร็อกซี ซึ่งข้อมูลรับรองต่างจาก client secret และ access token

บทความที่เกี่ยวข้อง