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 mở rộng Session của Requests. Tạo nó với client registration, redirect URI, state và scopes hiện có của ứng dụng, rồi đặt tuyến của nó trước khi trao đổi token. Với tuyến HTTP công khai, một ứng viên từ danh sách proxy HTTP cung cấp địa chỉ trong bản đồ proxy của phiên này.

Gọi fetch_token và các thao tác trên tài nguyên được bảo vệ trong phiên này. Đối số proxies chỉ truyền cho fetch_token chỉ áp dụng cho lần trao đổi đó; nó không thiết lập tuyến lâu dài cho các lần gọi sau.

Lượt truy cập trang ủy quyền trên trình duyệt dùng tuyến của trình duyệt. Python thực hiện yêu cầu token riêng, nên thành công trên trình duyệt không cấu hình phiên này.

Tích hợp môi trường của Requests có thể ảnh hưởng đến việc chọn proxy của phiên. Với tuyến nghiêm ngặt do ứng dụng sở hữu, hãy xem lại trust_env; việc tắt nó cũng đòi hỏi phải cung cấp rõ ràng mọi cài đặt CA hoặc xác thực cần thiết.

Lỗi OAuth do endpoint token trả về có thể đến qua một proxy đang hoạt động. Giữ phản hồi đó tách biệt với xác thực proxy, vì thông tin đăng nhập của proxy khác với client secret và access token.

Bài viết liên quan