requests-oauthlib: задайте проксі OAuth2Session до fetch_token
Використовуйте той самий сеанс із підтримкою проксі для отримання токена й захищених ресурсів, зберігаючи наявний потік 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.