Enviando uma requisição HTTP com autenticação básica

Elixir:
Enviando uma requisição HTTP com autenticação básica

Como Fazer:

Para enviar uma requisição HTTP com autenticação básica em Elixir, utilizamos a biblioteca HTTPoison para facilitar o processo. Aqui está um exemplo:

# Adicione HTTPoison à sua lista de dependências no mix.exs
defp deps do
  [
    {:httpoison, "~> 1.8"}
  ]
end

# Execute mix deps.get para instalar a biblioteca
# Após instalar, você pode fazer uma requisição com autenticação básica:

defmodule MyHTTPClient do
  def send_request do
    auth = {"meu_usuario", "minha_senha"}
    HTTPoison.get!(
      "https://minha.api/protegida",
      [],
      basic_auth: auth
    )
  end
end

# Usar a função e mostrar a resposta
IO.inspect(MyHTTPClient.send_request)

Saída esperada (exemplo):

%HTTPoison.Response{
  body: "Conteúdo protegido",
  status_code: 200,
  ...
}

Mergulho Profundo

Antes de HTTPoison, a comunidade de Elixir frequentemente recorria ao hackney diretamente (é a biblioteca que o HTTPoison abstrai). As autenticações via HTTP surgiram como um método simples para controlar o acesso a webpages, antes mesmo do advento de formas mais complexas e seguras como o OAuth.

Enviar uma requisição com autenticação básica é simples, mas não muito seguro por si só, pois as credenciais são codificadas em Base64, não criptografadas. Por isso, é crucial usar HTTPS, que adiciona uma camada de segurança com a criptografia SSL/TLS.

Alternativas para a autenticação em APIs incluem tokens de acesso, autenticação Digest e JWT (Json Web Tokens), que oferecem medidas de segurança adicionais. Em Elixir, bibliotecas como Guardian são frequentemente usadas para trabalhar com JWT.

Veja Também