lua获取get请求中的参数

-- 获取GET请求参数
local request_args_tab = ngx.req.get_uri_args()
for k, v in pairs(request_args_tab) do
    print(k..":"..v)
end
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Lua实现拦截请求校验sign可以通过OpenResty来实现。OpenResty是一个基于Nginx的Web应用开发框架,支持使用Lua脚本进行二次开发。以下是一个简单的示例,实现了拦截请求并校验sign的功能: ``` -- 导入OpenResty的http库 local http = require "resty.http" -- 获取请求的URI和query参数 local uri = ngx.var.uri local args = ngx.req.get_uri_args() -- 获取请求的sign参数 local sign = ngx.req.get_headers()["sign"] -- 根据请求参数生成待校验的签名 local signParam = "" for k, v in pairs(args) do signParam = signParam .. k .. "=" .. v .. "&" end signParam = string.sub(signParam, 1, -2) local signToCheck = ngx.md5(signParam) -- 校验签名是否正确 if sign ~= signToCheck then ngx.exit(ngx.HTTP_FORBIDDEN) end -- 发送请求到后端服务 local httpc = http.new() local res, err = httpc:request_uri("http://backend_service" .. uri, { method = ngx.req.get_method(), headers = ngx.req.get_headers(), body = ngx.req.get_body_data(), keepalive_timeout = 60000, keepalive_pool = 10 }) -- 将后端服务的响应返回给客户端 ngx.status = res.status ngx.say(res.body) ngx.exit(ngx.HTTP_OK) ``` 以上代码,首先获取请求的URI和query参数,并获取请求的sign参数。然后根据请求参数生成待校验的签名,使用ngx.md5函数计算签名的MD5值。最后,校验签名是否正确,如果不正确则直接返回HTTP_FORBIDDEN状态码。如果签名校验通过,则使用resty.http库发送请求到后端服务,并将响应返回给客户端。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值