Add API key support for server authentication in configuration
This commit is contained in:
@@ -33,6 +33,7 @@ local function loadConfig()
|
||||
if cfg.serverUrl then SERVER_URL = cfg.serverUrl end
|
||||
if cfg.pollInterval then POLL_INTERVAL = cfg.pollInterval end
|
||||
if cfg.stateInterval then STATE_INTERVAL = cfg.stateInterval end
|
||||
if cfg.apiKey then API_KEY = cfg.apiKey end
|
||||
print("[CONFIG] Loaded from " .. CONFIG_FILE)
|
||||
end
|
||||
end
|
||||
@@ -46,6 +47,7 @@ local latestState = nil -- last broadcast from master
|
||||
local modem = nil
|
||||
local modemName = nil
|
||||
local running = true
|
||||
local API_KEY = nil -- optional API key for server auth
|
||||
|
||||
-------------------------------------------------
|
||||
-- Find modem
|
||||
@@ -71,6 +73,7 @@ local function httpPost(path, body)
|
||||
local url = SERVER_URL .. path
|
||||
local data = textutils.serialiseJSON(body)
|
||||
local headers = { ["Content-Type"] = "application/json" }
|
||||
if API_KEY then headers["Authorization"] = "Bearer " .. API_KEY end
|
||||
|
||||
local ok, err = pcall(function()
|
||||
local response = http.post(url, data, headers)
|
||||
@@ -89,8 +92,10 @@ end
|
||||
|
||||
local function httpGet(path)
|
||||
local url = SERVER_URL .. path
|
||||
local headers = nil
|
||||
if API_KEY then headers = { ["Authorization"] = "Bearer " .. API_KEY } end
|
||||
local ok, result = pcall(function()
|
||||
local response = http.get(url)
|
||||
local response = http.get(url, headers)
|
||||
if response then
|
||||
local data = response.readAll()
|
||||
response.close()
|
||||
@@ -274,6 +279,11 @@ local function main()
|
||||
print("[OK] Server URL: " .. SERVER_URL)
|
||||
print("[OK] Poll interval: " .. POLL_INTERVAL .. "s")
|
||||
print("[OK] State interval: " .. STATE_INTERVAL .. "s")
|
||||
if API_KEY then
|
||||
print("[OK] API key configured")
|
||||
else
|
||||
print("[WARN] No API key set (open access)")
|
||||
end
|
||||
print("")
|
||||
print("Bridge is running. Press Ctrl+T to stop.")
|
||||
print("Listening for master broadcasts on ch " .. BROADCAST_CHANNEL)
|
||||
|
||||
Reference in New Issue
Block a user