Wysyłanie zapytania http z podstawową autoryzacją

Elixir:
Wysyłanie zapytania http z podstawową autoryzacją

Jak to zrobić:

Aby wysłać żądanie HTTP z podstawową autentykacją w Elixirze, możesz użyć biblioteki HTTP klienta, np. HTTPoison. Poniżej znajdziesz przykład kodu wraz z przykładową odpowiedzią serwera.

# Musisz dodać HTTPoison do twojej listy zależności w mix.exs
defp deps do
  [
    {:httpoison, "~> 1.8"}
  ]
end

def send_request_with_basic_auth do
  auth_header = encode_credentials("username", "password")

  HTTPoison.get(
    "http://example.com/protected/resource", 
    [{"Authorization", auth_header}]
  )
end

defp encode_credentials(username, password) do
  "Basic " <> Base.encode64("#{username}:#{password}")
end

Po uruchomieniu send_request_with_basic_auth/0 otrzymasz tuple z odpowiedzią lub błędem:

{:ok, %HTTPoison.Response{status_code: 200, body: body}} # Sukces
{:error, %HTTPoison.Error{reason: reason}} # Błąd

Deep Dive

Podstawowa autentykacja (basic auth) jest prostym mechanizmem kontrolującym dostęp, stosowanym w protokole HTTP już od wczesnych lat jego istnienia. Alternatywnymi metodami są OAuth, API keys czy JWT (JSON Web Tokens), które oferują różne poziomy bezpieczeństwa i wygody.

Implementacja podstawowej autentykacji w Elixirze jest bezpośrednia: zakoduj login i hasło w formacie Base64, dołącz jako nagłówek Authorization w twoim żądaniu HTTP. Warto zwrócić uwagę, że metoda ta przesyła dane uwierzytelniające w przesyłalnych tekstach, co nie jest rekomendowane na produkcji bez SSL/TLS.

Ważne jest również zrozumienie, że wiele bibliotek HTTP w Elixirze, takich jak HTTPoison czy Tesla, oferują wewnętrzne wsparcie dla autentykacji, więc nie musisz ręcznie kodować nagłówków.

Zobacz również