Enviando uma requisição HTTP com autenticação básica

Lua:
Enviando uma requisição HTTP com autenticação básica

Como Fazer:

Para enviar uma solicitação HTTP com autenticação básica em Lua, vamos usar o módulo socket.http e mime. Primeiro, instale o módulo luasocket se ainda não estiver instalado:

luarocks install luasocket

A seguir, um exemplo de como fazer uma requisição GET com autenticação:

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

-- Credenciais
local username = "usuario"
local password = "senha"

-- Codifica as credenciais
local auth = "Basic " .. mime.b64(username .. ":" .. password)

local response_body = {}

-- Realiza a requisição HTTP GET
http.request{
    url = "http://seuservico.com/recurso",
    method = "GET",
    headers = {
        ["Authorization"] = auth
    },
    sink = ltn12.sink.table(response_body)
}

-- Concatena o corpo da resposta e imprime
print(table.concat(response_body))

Saída de exemplo:

{ "dados": "valor", "maisDados": "outroValor" }

Aprofundamento

A autenticação básica HTTP é um método antigo e simples de proteger recursos: não é o mais seguro, mas é fácil de implementar. Uma alternativa moderna e mais segura é a autenticação via tokens, como OAuth. Ao fazer uma solicitação com autenticação básica, o usuário e a senha são codificados em Base64, mas não criptografados, o que pode ser inseguro em conexões não HTTPS.

Outro detalhe é que, ao usar Lua para requisições HTTP, o luasocket é um dos módulos mais populares, mas existem alternativas como o LuaSec para a conexão segura HTTPS. Não esqueça de gerenciar adequadamente a privacidade das credenciais para evitar vazamentos de informações sensíveis.

Ver Também