Å sende en HTTP-forespørsel med grunnleggende autentisering

Lua:
Å sende en HTTP-forespørsel med grunnleggende autentisering

Hvordan:

local http = require("socket.http")
local ltn12 = require("ltn12")

-- Opprett en base64-enkodet streng for autentisering
local function basic_auth(user, password)
    return "Basic " .. (user .. ":" .. password):gsub("\n", ""):gsub("\r", "")
end

-- Sett opp HTTP-forespørselen med grunnleggende autentisering
local user, password = "brukernavn", "passord"
local response_body = {}

http.request{
    url = "http://eksempelside.no/data",
    method = "GET",
    headers = {
        ["Authorization"] = basic_auth(user, password)
    },
    sink = ltn12.sink.table(response_body)
}

-- Skriver ut responsen fra serveren
print(table.concat(response_body))

Eksempelutdata:

{"status":"suksess","melding":"Du er autentisert!"}

Dypdykk

Før SSL/TLS ble utbredt, var grunnleggende autentisering over HTTP vanlig for å beskytte ressurser. Til tross for svakhetene fortsatt brukt, spesielt der enkelhet er prioritert.

Digest-autentisering er et alternativ som er litt sikrere, da det ikke sender passord i klartekst. Moderne alternativer inkluderer OAuth og API-nøkler, som både gir mer robust sikkerhet og fleksibilitet.

Grunnleggende autentisering fungerer ved å inkludere en Authorization header i HTTP-forespørselen. Verdien er ordet “Basic” fulgt av en base64-enkodet streng av brukernavn og passord. Lua krever et eksternt bibliotek, som socket.http i vårt eksempel, for å håndtere HTTP-forespørsler.

Se Også