Elixir Tesla: autentikasi proxy dengan adapter Mint
Taruh header Basic pada opsi koneksi adapter Mint agar dapat menyertai CONNECT sebelum permintaan ke tujuan.
basic = "Basic " <> Base.encode64(proxy_user <> ":" <> proxy_password)
client = Tesla.client([], {Tesla.Adapter.Mint, [
proxy: {:http, "proxy.example", 8080, []},
proxy_headers: [{"proxy-authorization", basic}]
]})Gunakan klien Tesla ini untuk operasi yang dimaksudkan aplikasi. URL-nya tetap menunjuk ke layanan tujuan; proxy_user dan proxy_password adalah akun pada perantara.
Mint menerapkan proxy_headers pada CONNECT untuk proxy terowongan, atau menggabungkan header tersebut ke permintaan dalam mode penerusan. Middleware Tesla umum untuk header tujuan bukanlah masukan koneksi pada tahap yang lebih awal itu.
Contoh ini menggunakan Basic. Base64 adalah representasi, bukan enkripsi; perlindungannya bergantung pada transport koneksi proxy.
Pertahankan opsi ini pada adapter Mint. Beralih ke Finch, Hackney, atau adapter lain membutuhkan antarmukanya sendiri, dan Authorization tujuan tetap merupakan pertukaran autentikasi yang berbeda.