拦截器用于拦截和处理HTTP请求和响应。在请求开始处理之前进行拦截过滤与处理。
API文档
拦截器一般用于初始化lua脚本中创建拦截规则。
它主要用于浏览器的请求中某些目录或文件不允许访问、某些目录需要验证权限,在拦截器中进行判断并选择是否继续向下执行。
- 拦截器为应用全局变量,任意位置均可访问
- 与订阅一样可以使用
request
、response
用于处理与回复
要求
- 必须返回
bool
型变量:true
= 允许并继续,false
= 终止请求
示例
api/init/interceptor.lua
-- 验证是否为禁止的路径
local function is_denied()-- 禁止访问的路径local denied_path = {-- session作为会话存储目录"/session",-- /api/init 存放的初始化代码等"/api/init",}-- 获取请求路径local request_filepath = request:filepath()-- 遍历禁止路径for _, path in ipairs(denied_path) doif request_filepath:sub(1, #path) == path thenreturn trueendendreturn false
endif is_denied() thenreturn false
end-- 没有需要禁止的路径
return true
api/init/init.lua
----------拦截器示例-------------
-- 拦截所有请求
interceptor.add("/*.*","/api/init/interceptor.lua")
-- 输出初始化成功
print("init ok")
return true