用途:该技能用于 Next.js 15.5/16 的中间件(Middleware)请求处理,可在 Edge 运行时创建 middleware.ts,或在 Node.js 运行时创建 proxy.ts,并通过 matcher 指定生效路径。
主要能力:支持 NextResponse.next() 放行、redirect 重定向、rewrite 重写、json 返回;可读取 pathname、searchParams、cookies、headers、geo、ip 等请求数据。典型场景包括基于 next-auth/jwt 的路由保护与角色访问控制、安全响应头(CSP、CORS)、国际化与语言检测、A/B 测试重写、地理定位路由、Cookie 读写、基于 IP 的限流与机器人检测。
使用方式:在项目根目录创建 middleware.ts,导出 middleware 函数与 config.matcher;matcher 支持单路径、多路径数组及正则(如 '/((?!api|_next/static|_next/image|favicon.ico).*)')。鉴权示例使用 getToken({ req: request, secret: process.env.NEXTAUTH_SECRET });重定向使用 NextResponse.redirect(new URL('/login', request.url));重写使用 NextResponse.rewrite;设置响应头使用 response.headers.set;设置 Cookie 使用 response.cookies.set。
限制与注意:中间件在匹配的每个请求上运行,应保持快速,避免数据库查询等重计算;默认运行于 Edge 运行时;应使用具体 matcher 避免作用于静态文件;需始终返回响应并优雅处理错误;状态可借助 Cookie 或请求头缓存。相关技能包括 nextjs-authentication、nextjs-routing-advanced、nextjs-deployment。