我正在尝试编写一个小的LUA脚本来检测请求是否带有正确的API密钥。如果不是,则放弃该请求;如果是这样,请将另一个自定义标头写入请求,以便上游服务器可以处理该请求。
我用脚本编写了总体思路,但是我看不到它可行—结果请求没有应写入的自定义标头。我在做什么错了?
local piq_header = "x-api-key"
local authenticated_header = "x-authenticated"
local valid_piq_api_keys = {
["a_long_random_string"] = "client1"
}
-- check if api key request header is set
if ngx.header[piq_header] then
local api_key = ngx.header[piq_header]
-- check if api key is valid
if valid_piq_api_keys[api_key] then
local retailer = valid_piq_api_keys[api_key]
ngx.header.authenticated_header = customer
return
else
ngx.exit(ngx.HTTP_FORBIDDEN)
end
else
ngx.header.authenticated_header = nil;
return
end