Inviare una richiesta http con autenticazione di base

Lua:
Inviare una richiesta http con autenticazione di base

How to:

-- Carichiamo il modulo necessario
local http = require("socket.http")
local ltn12 = require("ltn12")
local mime = require("mime")

-- Username e password per l'autenticazione
local username = "tuo_username"
local password = "tua_password"

-- Codifichiamo le credenziali in base64
local auth = "Basic " .. mime.b64(username .. ":" .. password)

-- La tua URL che richiede autenticazione
local url = "http://esempio.com/dati"

-- Impostiamo gli headers per includere le credenziali di autenticazione
local response_body = {}
local res, code, response_headers = http.request{
    url = url,
    method = "GET",
    headers = {
        ["Authorization"] = auth
    },
    sink = ltn12.sink.table(response_body)
}

-- Controlliamo se la richiesta è andata a buon fine
if code == 200 then
    print("Accesso riuscito!")
    print(table.concat(response_body))
else
    print("Errore: " .. (code or "nessuna risposta"))
end

Output di esempio:

Accesso riuscito!
{...dati recuperati...}

Deep Dive:

Le richieste HTTP con autenticazione di base sono una pratica standard dalla nascita del web. Questo metodo è semplice ma meno sicuro rispetto a meccanismi più moderni come OAuth. Comunque, è ancora usato per l’accesso a vecchie API o per test rapidi. Lua non offre funzionalità native di alto livello per le richieste web, quindi spesso si utilizza il modulo socket.http tramite LuaSocket, che fornisce funzionalità di rete. Per l’autenticazione, le credenziali vengono codificate in base64 e poi passate nell’header della richiesta. Alcune alternative per gli script Lua che richiedono sicurezza avanzata includono l’uso di moduli esterni per supportare HTTPS o l’uso di token invece delle credenziali.

See Also: