Wysyłanie zapytania http z podstawową autoryzacją

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

How to: (Jak to zrobić:)

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

-- Kodowanie danych logowania
local username = "jan_kowalski"
local password = "bezpieczneHaslo123"
local auth = "Basic " .. mime.b64(username .. ":" .. password)

-- Przygotowanie żądania
local response_body = {}
local request_body = "param=value"
local res, code, response_headers = http.request{
    url = "http://example.com/api/resource",
    method = "POST",
    headers = {
        ["Authorization"] = auth,
        ["Content-Type"] = "application/x-www-form-urlencoded",
        ["Content-Length"] = tostring(#request_body)
    },
    source = ltn12.source.string(request_body),
    sink = ltn12.sink.table(response_body)
}

-- Wyświetlenie odpowiedzi
if res then
    print("Odpowiedź serwera:", table.concat(response_body))
else
    print("Błąd:", code)
end

Sample output:

Odpowiedź serwera: {"status": "success"}

Deep Dive (Dogłębna analiza)

Wysyłanie żądania HTTP z uwierzytelnianiem podstawowym nie jest nowością. Wczesne przeglądarki internetowe już to obsługiwały. Alternatywą dla Basic Authentication jest OAuth, Token Auth czy inne mechanizmy, które mogą oferować większe bezpieczeństwo. Do uwierzytelniania podstawowego używa się zakodowanego w Base64 łańcucha znaków zawierającego login i hasło rozdzielone dwukropkiem, dołączane do nagłówków żądania. Choć łatwe w implementacji, metoda ta jest mniej bezpieczna niż bardziej zaawansowane formy autoryzacji, gdyż może być podatna na ataki typu man-in-the-middle oraz nie zapewnia szyfrowania danych logowania.

See Also (Zobacz również)