用途:为 Next.js 项目生成根目录下的 middleware.ts,处理认证、授权、重定向、CORS、限流与国际化等请求级逻辑。生成前需先读取 config/defaults.md,按用户配置的技术栈调整模式、导入与示例。
主要能力:认证中间件(基于 cookie 会话,登录用户离开登录页、未登录用户跳转登录并带 callbackUrl);Auth.js 集成(使用其 auth 包装器,matcher 排除 api/auth);基于角色的访问控制(用 jose 的 jwtVerify 解析 JWT 角色,按路由限制角色);CORS(处理 OPTIONS 预检与普通请求,设置允许来源、方法、头与 Max-Age);限流(基于内存 Map 与 x-forwarded-for/x-real-ip,返回 429 与 Retry-After、X-RateLimit-* 头);重定向与重写(308 永久、307 临时,以及用 cookie 分桶的 A/B 测试重写);i18n 路由(按 Accept-Language 与 NEXT_LOCALE cookie 检测语言并重定向);多中间件组合(composeMiddleware 链式执行,遇重定向或错误短路)。
使用方式:在项目根目录创建 middleware.ts(Next.js 仅支持单个中间件文件),导出 middleware 函数与 config.matcher;matcher 必须为字符串字面量,用 :path* 通配,并排除 _next/static、_next/image 与静态资源。可参考 assets/middleware-template/middleware.ts 模板。
限制与检查:生成后需确认文件位于项目根目录而非 app/ 或 src/ 内;matcher 排除静态文件与 _next 内部路径;重定向使用 307 或 308;CORS 同时处理预检与普通请求;认证中间件不拦截登录页本身;组合中间件在重定向时正确短路;使用 Auth.js 时 matcher 排除 api/auth。资料未提供具体版本要求、性能基准或收费信息。