שליחת בקשת HTTP עם אימות בסיסי

Lua:
שליחת בקשת HTTP עם אימות בסיסי

איך לעשות:

בלואה, נשתמש בספריית socket.http לשליחת הבקשות. תחילה, נרשום פונקציה להצפנת שם המשתמש והסיסמה:

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

function createBasicAuth(username, password)
  local auth = mime.b64(username .. ":" .. password)
  return "Basic " .. auth
end

local response = {}
local username = "your_username"
local password = "your_password"
local authHeader = createBasicAuth(username, password)
local r, c, h = http.request {
  url = "http://your_api_endpoint_here",
  headers = {
    ["Authorization"] = authHeader
  },
  sink = ltn12.sink.table(response)
}

if c == 200 then
  print("Success:", table.concat(response))
else
  print("Error:", c)
end

זה ידפיס "Success:" ואת תוכן התשובה או "Error:" ואת הקוד המצבית אם שליחת הבקשה לא הצליחה.

עיון מעמיק:

שליחת בקשות עם אימות בסיסי היא טכניקה עתיקה. היא שימושית אך לא בטוחה כמו גישות אימות מודרניות יותר כמו OAuth. בסיסי אומר שהמידע מועבר בצורה מקודדת ב-Base64, אך לא מוצפן.

בלואה, אנחנו לא מקבלים ספריית HTTP מובנית כמו בשפות אחרות, אז אנחנו משתמשים ב-socket.http. יש ספריות חיצוניות כמו LuaSec המוסיפות תמיכה בחיבורים מאובטחים (HTTPS), שהוא חשוב הרבה יותר לשימוש אינטרנטי מאובטח.

ראה גם: