使用Nginx LUA脚本检测标头中的API密钥

时间:2019-02-01 19:42:05

标签: nginx lua

我正在尝试编写一个小的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

0 个答案:

没有答案