Праверце імпарт Authlib перад выбарам аргумента проксі. Яго інтэграцыі Requests і HTTPX прадстаўляюць розную канфігурацыю транспарту.

Requests OAuth2Session наследуе паводзіны Session у Requests:

from authlib.integrations.requests_client import OAuth2Session

client = OAuth2Session(client_id=client_id)
client.proxies.update({
    "http": "http://proxy.example.net:8080",
    "https": "http://proxy.example.net:8080",
})

Адпаведная асінхронная інтэграцыя HTTPX прымае аргумент проксі на ўзроўні кліента падчас стварэння:

from authlib.integrations.httpx_client import AsyncOAuth2Client

client = AsyncOAuth2Client(
    client_id=client_id,
    proxy="http://proxy.example.net:8080",
)

Прыклад HTTPX выкарыстоўвае адзіную опцыю proxy, якую падтрымлівае Authlib 1.9.1. Гэтая інтэграцыя перадае распазнаныя опцыі транспарту свайму базаваму HTTP-кліенту. Слоўнік proxies у стылі Requests не з'яўляецца ўзаемазаменным аргументам канструктара. Для публічных канчатковых пунктаў токенаў і API на дазволеным публічным маршруце проксі спіс HTTP-проксі прапануе кандыдатаў для URL HTTP-проксі абодвух прыкладаў.

Захоўвайце існуючую рэгістрацыю OAuth праграмы, redirect URI, scopes і апрацоўку токенаў пры прымяненні любой з канфігурацый. Выкарыстоўвайце сканфігураваны кліент для аперацый з токенамі і абароненымі рэсурсамі і закрывайце яго праз звычайны сінхронны або асінхронны жыццёвы цыкл.

Дапаможнікі фрэймворка могуць ствараць гэтыя кліенты ад імя праграмы. Праверце інтэграцыю дапаможніка і опцыі стварэння кліента перад перадачай аргументаў часу запыту. Ключавое слова proxies, якое прымае запыт токена Requests, не даказвае, што асінхронны запыт HTTPX яго прымае.

Падобныя артыкулы