SuperAPI AI 工具集

middleware-protection

前端与建站

查看项目

更新于 10-15 20:30

技能介绍

用途:在 Next.js 应用中集中处理路由认证,避免在每个路由重复编写鉴权逻辑,适合需要保护多个路由、统一会话刷新和基于角色访问控制的场景。

主要能力:中间件拦截所有请求;通过 PROTECTED_ROUTES 与 PUBLIC_ROUTES 声明式定义受保护与公开路由;自动刷新会话;对 API 路由返回 JSON 错误,对页面路由执行重定向;支持基于角色的路由权限(如 /admin 仅 admin);支持正则模式匹配复杂路由;可将用户 ID 写入请求头供下游使用。

使用方式:在 middleware.ts 中创建 Supabase 服务端客户端,调用 supabase.auth.getUser() 获取用户,判断路由是否需要认证;未登录时 API 返回 401 JSON,页面重定向到 /login 并附带 redirectTo 参数;通过 config.matcher 跳过静态资源。下游 API 路由可从 x-user-id 请求头读取用户 ID。资料还提供了 FastAPI 的 BaseHTTPMiddleware 实现示例。

限制与注意:资料未提供安装命令、依赖版本、收费信息或平台支持范围;示例依赖 Supabase 环境变量 NEXT_PUBLIC_SUPABASE_URL 与 NEXT_PUBLIC_SUPABASE_ANON_KEY;需避免重定向 API 路由、遗漏会话刷新或对静态文件执行鉴权。