বেসিক অথেন্টিকেশন সহ HTTP রিকুয়েস্ট প্রেরণ

Lua:
বেসিক অথেন্টিকেশন সহ HTTP রিকুয়েস্ট প্রেরণ

কিভাবে:

Lua-এর মধ্যে HTTP সাপোর্ট অন্তর্নির্মিত নেই, তাই আপনার socket.http থেকে LuaSocket বা Lua 5.3+ ব্যবহার করলে http লাইব্রেরি থেকে http.request এর মতো একটি বাহ্যিক লাইব্রেরি প্রয়োজন হবে। মৌলিক প্রমাণীকরণের জন্য, ক্রেডেনশিয়াল এনকোড করুন এবং এটি অনুরোধ হেডারে যুক্ত করুন।

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

-- আপনার ক্রেডেনশিয়াল
local username = "Aladdin"
local password = "openSesame"
local credentials = mime.b64(username .. ":" .. password)

-- অনুরোধ সেটআপ
local response_body = {}
local res, code, response_headers = http.request{
    url = "http://example.com/data",
    method = "GET",
    headers = {
        ["Authorization"] = "Basic " .. credentials
    },
    sink = ltn12.sink.table(response_body)
}

-- ফলাফল আউটপুট
if code == 200 then
    print(table.concat(response_body))
else
    print("ত্রুটি: " .. (res or code))
end

গভীর ডাইভ

HTTP মৌলিক প্রমাণীকরণ হচ্ছে একটি পদ্ধতি যেখানে একটি HTTP ইউজার এজেন্ট একটি অনুরোধ করার সময় একটি ইউজার নেম এবং পাসওয়ার্ড প্রদান করে। ওয়েবের ইতিহাসের প্রাথমিক সময়ে আবিষ্কার করা হলেও, এটি ব্যাপকভাবে

সমর্থিত হলেও খুব নিরাপদ নয়; ক্রেডেনশিয়ালগুলি কেবল বেস64-এনকোড করা হয়, এনক্রিপ্ট করা নয়।

বিকল্পগুলি অন্তর্ভুক্ত ডাইজেস্ট প্রমাণীকরণ, OAuth, এবং API কী – সবই আরও শক্তিশালী নিরাপত্তা প্রদান করে। মৌলিক প্রমাণীকরণ প্রায়শই স্ক্রিপ্টিং দ্রুত পরীক্ষা, ইন্টারনাল টুলস, বা HTTPS এর মাধ্যমে পরিবহন নিরাপদ হলে ব্যবহৃত হয়।

Lua-তে মৌলিক প্রমাণীকরণ বাস্তবায়ন করতে, আপনি সাধারণত একটি স্ট্রিং তৈরি করেন যা ইউজারনেম এবং পাসওয়ার্ডকে একটি কোলন দ্বারা পৃথক করে, তারপর সেই স্ট্রিংটিকে base64 এর মাধ্যমে এনকোড করেন। এই এনকোডেড স্ট্রিংটি আপনার HTTP অনুরোধের Authorization হেডারে পাঠানো হয়।

Lua-এর নমনীয় প্রকৃতি মানে হল HTTP এবং base64 এনকোডিং হ্যান্ডেল করার জন্য আপনি লাইব্রেরির ওপর বিকল্প পছন্দ করতে পারেন। LuaSocket দীর্ঘকাল ধরে নেটওয়ার্ক অপারেশনের জন্য যাও ব্যবহৃত হচ্ছে, যদিও Lua-এর নতুন ভার্সন যেমন অধিক জটিল কাজের জন্য http লাইব্রেরি বা CURL বাইন্ডিংস মতো বিকল্প প্রবর্তন করেছে।

দেখুন