FastWeb网站开发之拦截器(interceptor)使用教程

拦截器用于拦截和处理HTTP请求和响应。在请求开始处理之前进行拦截过滤与处理。

API文档

拦截器一般用于初始化lua脚本中创建拦截规则。

它主要用于浏览器的请求中某些目录或文件不允许访问、某些目录需要验证权限,在拦截器中进行判断并选择是否继续向下执行。

  • 拦截器为应用全局变量,任意位置均可访问
  • 与订阅一样可以使用requestresponse用于处理与回复

要求

  • 必须返回bool型变量:true = 允许并继续,false = 终止请求

示例

api/init/interceptor.lua

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) do
        if request_filepath:sub(1, #path) == path then
            return true
        end
    end
    return false
end

if is_denied() then
    return false
end

-- 没有需要禁止的路径
return true

api/init/init.lua

Lua 复制代码
----------拦截器示例-------------
-- 拦截所有请求
interceptor.add("/*.*","/api/init/interceptor.lua")
-- 输出初始化成功
print("init ok")
return true
相关推荐
VT LI2 天前
Lua 源码执行流程全解析:词法分析、语法分析、字节码生成、虚拟机执行与垃圾回收
java·开发语言·lua
历程里程碑3 天前
二叉树---二叉树的中序遍历
java·大数据·开发语言·elasticsearch·链表·搜索引擎·lua
上海合宙LuatOS4 天前
LuatOS扩展库API——【exremotefile】远程文件管理系统
物联网·lua·luatos
上海合宙LuatOS4 天前
LuatOS扩展库API——【exremotecam】网络摄像头控制
开发语言·网络·物联网·lua·luatos
专吃海绵宝宝菠萝屋的派大星4 天前
使用postman测试自己编写的mcp服务
测试工具·lua·postman
一个有温度的技术博主5 天前
Lua语法详解:从变量声明到循环遍历的避坑指南
redis·缓存·lua
上海合宙LuatOS5 天前
LuatOS扩展库API——【exmodbus】MODBUS协议
物联网·lua·luatos
一个有温度的技术博主5 天前
Lua语法进阶:函数封装与条件控制的艺术
redis·分布式·缓存·lua
小李云雾6 天前
FastAPI 后端开发:文件上传 + 表单提交
开发语言·python·lua·postman·fastapi
曼巴UE56 天前
Unlua 官方案例
c++·ue5·lua·ue