basic = "Basic " <> Base.encode64(proxy_user <> ":" <> proxy_password)

client = Tesla.client([], {Tesla.Adapter.Mint, [
  proxy: {:http, "proxy.example", 8080, []},
  proxy_headers: [{"proxy-authorization", basic}]
]})

Use esse cliente Tesla nas operações pretendidas pela aplicação. As URLs continuam apontando para os serviços de destino; proxy_user e proxy_password identificam a conta no intermediário.

O Mint aplica proxy_headers ao CONNECT em um proxy de túnel ou mescla esses cabeçalhos às requisições no modo de encaminhamento. Um middleware genérico de cabeçalhos de destino do Tesla não equivale a essa configuração de conexão usada antes.

O exemplo usa Basic. Base64 é uma representação, não criptografia; a proteção depende do transporte da conexão com o proxy.

Mantenha essas opções no adaptador Mint. A troca por Finch, Hackney ou outro adaptador exige usar a interface correspondente, e o Authorization do destino continua sendo outra troca de autenticação.

Artigos relacionados