requests-oauthlib: დააყენეთ OAuth2Session-ის proxy fetch_token-ამდე
გამოიყენეთ იგივე proxy-ს გაცნობიერებული სესია ტოკენის მისაღებად და დაცული რესურსებისთვის, ხოლო არსებული 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 აფართოებს Requests-ის Session-ს. შექმენით ის აპლიკაციის არსებული client registration-ით, redirect URI-ით, state-ით და scopes-ით, შემდეგ კი დააყენეთ მისი მარშრუტი ტოკენის გაცვლამდე. საჯარო HTTP მარშრუტისთვის HTTP proxy სიიდან კანდიდატი ამ სესიის proxy რუკაში მოგვაწოდებს მისამართს.
გამოიძახეთ fetch_token და დაცული რესურსების ოპერაციები ამ სესიაზე. proxies არგუმენტი, რომელიც მხოლოდ fetch_token-ს გადაეცემა, მოქმედებს მხოლოდ ამ გაცვლისთვის; ის არ ამონტაჟებს მუდმივ მარშრუტს შემდგომი გამოძახებებისთვის.
ბრაუზერში ავტორიზაციის გვერდის ვიზიტი იყენებს ბრაუზერის მარშრუტს. Python ტოკენის მოთხოვნას ცალკე ასრულებს, ამიტომ ბრაუზერში წარმატება ამ სესიას არ აკონფიგურირებს.
Requests-ის გარემოსთან ინტეგრაცია შეიძლება გავლენა იქონიოს სესიის proxy-ს არჩევანზე. აპლიკაციის საკუთრებაში არსებული მკაცრი მარშრუტისთვის გადახედეთ trust_env-ს; მისი გამორთვა ასევე მოითხოვს საჭირო CA ან ავთენტიფიკაციის პარამეტრების ცხადად მიწოდებას.
ტოკენის endpoint-ის მიერ დაბრუნებული OAuth შეცდომა შეიძლება მოვიდეს მომუშავე proxy-ს მეშვეობით. შეინახეთ ეს პასუხი proxy-ს ავთენტიფიკაციისგან ცალკე, რომლის მონაცემები განსხვავდება client secret-ისა და access token-ისგან.