Elixir:
Inviare una richiesta http con autenticazione di base
Come fare:
Elixir usa la libreria HTTPoison
per fare richieste HTTP con autenticazione di base in modo semplice. Installa prima la libreria aggiungendo {:httpoison, "~> 1.8"}
al tuo mix.exs
e poi esegui mix deps.get
. Ecco un esempio di come usarla:
defmodule HTTPExample do
def send_basic_auth_request do
url = "https://example.com/protected/resource"
username = "user"
password = "pass"
options = [basic_auth: {username, password}]
HTTPoison.get(url, [], options)
end
end
# Uso della funzione
{:ok, response} = HTTPExample.send_basic_auth_request()
IO.inspect response.status_code # Potrebbe stampare: 200
IO.inspect response.body # Il corpo della risposta (se l'autenticazione è andata a buon fine)
Approfondimento
L’autenticazione di base HTTP ha origini negli albori del web (RFC 7617) per proteggere risorse web senza dover implementare sistemi complessi. Non è la scelta migliore per la sicurezza moderna dato che le credenziali viaggiano codificate in base64 e non criptate. Alternativamente, si può usare l’autenticazione Digest o OAuth per maggiore sicurezza. Riguardo all’implementazione in Elixir, HTTPoison è un comodo wrapper intorno a hackney
, che gestisce la connessione e la codifica delle richieste HTTP.
Vedi anche
- HTTPoison GitHub: https://github.com/edgurgel/httpoison
- Hackney library GitHub: https://github.com/benoitc/hackney
- Specifiche RFC 7617 per l’autenticazione di base HTTP: https://tools.ietf.org/html/rfc7617