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 Requests-এর Session প্রসারিত করে। অ্যাপ্লিকেশনের বিদ্যমান client registration, redirect URI, state ও scopes দিয়ে এটি তৈরি করুন, তারপর টোকেন বিনিময়ের আগে এর রুট সেট করুন। একটি পাবলিক HTTP রুটের জন্য HTTP প্রক্সি তালিকা থেকে একটি প্রার্থী এই সেশনের প্রক্সি ম্যাপে ঠিকানা দেয়।

এই সেশনে fetch_token এবং সুরক্ষিত-রিসোর্স অপারেশনগুলি কল করুন। proxies আর্গুমেন্ট শুধু fetch_token-এ পাঠালে ওই বিনিময়ের জন্য প্রযোজ্য; এটি পরবর্তী কলের জন্য স্থায়ী রুট স্থাপন করে না।

ব্রাউজারের অনুমোদন পৃষ্ঠার ভিজিট ব্রাউজারের রুট ব্যবহার করে। Python টোকেন অনুরোধ আলাদাভাবে করে, তাই ব্রাউজারে সফল হলেও এই সেশন কনফিগার হয় না।

Requests-এর এনভায়রনমেন্ট ইন্টিগ্রেশন সেশন প্রক্সি নির্বাচনকে প্রভাবিত করতে পারে। অ্যাপ্লিকেশন-নিয়ন্ত্রিত কঠোর রুটের জন্য trust_env পরীক্ষা করুন; এটি নিষ্ক্রিয় করলে প্রয়োজনীয় CA বা প্রমাণীকরণ সেটিংস স্পষ্টভাবে দিতে হয়।

টোকেন endpoint যে OAuth ত্রুটি ফেরত দেয় তা কার্যকর প্রক্সির মাধ্যমে আসতে পারে। সেই প্রতিক্রিয়া প্রক্সি প্রমাণীকরণ থেকে আলাদা রাখুন, যার ক্রেডেনশিয়াল client secret ও access token থেকে আলাদা।

সম্পর্কিত নিবন্ধ