HTTP-Anfragen mit Basisauthentifizierung senden

Lua:
HTTP-Anfragen mit Basisauthentifizierung senden

Anleitung:

Hier ist, wie man es in Lua anstellt:

-- Benötigtes HTTP-Modul importieren
local http = require("socket.http")
local ltn12 = require("ltn12")

-- Benutzername und Passwort festlegen
local username = 'deinBenutzername'
local password = 'deinPasswort'

-- Encoder für Base64
local function basicAuthEncode(user, pass)
  return 'Basic ' .. ((user .. ':' .. pass):gsub("\n", ""):enc())
end

-- Basic Authentication Header
local headers = {}
headers["Authorization"] = basicAuthEncode(username, password)

-- Anfrage und Antwort vorbereiten
local response_body = {}
local res, status = http.request{
  url = 'http://deineurl.de/pfad',
  method = "GET",
  headers = headers,
  sink = ltn12.sink.table(response_body)
}

-- Ergebnis ausgeben
print(res)
print(status)
if res then
    print(table.concat(response_body))
end

Im obigen Beispiel sehen mögliche Ausgaben so aus:

1
200
{"antwort":"Erfolgreich Authentifiziert"}

Vertiefung:

Historisch gesehen war die Basic Authentication ein früher Mechanismus für HTTP-Authentifizierung, wird aber wegen ihrer Einfachheit noch verwendet. Alternativen sind z.B. OAuth, Token-based Authentifizierung oder Digest Access Authentication, die mehr Sicherheit bieten. Die Implementierung in Lua erfordert das Managen von Headers, und oft wird das Base64-Encoding genutzt, um Benutzername und Passwort zu kodieren.

Siehe auch: