Elixir Tesla: аутентификация прокси с адаптером Mint
Поместите заголовок Basic в параметры соединения адаптера Mint, чтобы он мог идти с CONNECT до запроса к целевому сервису.
basic = "Basic " <> Base.encode64(proxy_user <> ":" <> proxy_password)
client = Tesla.client([], {Tesla.Adapter.Mint, [
proxy: {:http, "proxy.example", 8080, []},
proxy_headers: [{"proxy-authorization", basic}]
]})Используйте этот клиент Tesla для нужных операций приложения. Их URL по-прежнему указывают на целевые сервисы; proxy_user и proxy_password обозначают учётную запись посредника.
Mint применяет proxy_headers к CONNECT для туннельного прокси или объединяет эти заголовки с запросами в режиме пересылки. Обычное middleware Tesla для заголовков целевого сервиса не заменяет эти данные более раннего этапа соединения.
В примере используется Basic. Base64 — это представление, а не шифрование; защита зависит от транспорта соединения с прокси.
Эти параметры относятся к адаптеру Mint. Замена на Finch, Hackney или другой адаптер требует его интерфейса, а Authorization целевого сервиса остаётся другим обменом аутентификацией.