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), שהוא חשוב הרבה יותר לשימוש אינטרנטי מאובטח.
ראה גם:
- LuaSec - ספרייה לחיבורים מאובטחים בלואה.
- LuaSocket HTTP Documentation - מסמכים ל-soket.http.
- RFC 7617 ‘The ‘Basic’ HTTP Authentication Scheme’ - מפרט טכני של אימות בסיסי.