SuperAPI AI 工具集

start-middleware

编程与开发

查看项目

更新于 10-26 16:21

技能介绍

该技能面向 TanStack Start 中服务器函数与服务器路由的中间件编写,目标是用 createMiddleware 组合横切关注点(日志、鉴权、上下文注入等),形成有序中间件链。技能基于 @tanstack/react-start,资料标注目标版本为 v1.168.58。

Key Rules(资料要求):

  • 方法链顺序固定:.middleware() → .validator() → .client() → .server(),其他顺序会触发类型错误。
  • 形状校验不等于授权:从 sendContext 解析出的合法 ID 只是格式正确,不是已授权;在使用客户端发送的值作为查询键、过滤条件或路径参数前,必须基于服务端可信会话重新检查访问权限。
  • 客户端上下文默认不发送到服务端,需通过 next({ sendContext }) 显式选择加入;客户端发送的内容可被伪造,会话必须来自服务端可信源(如 cookie 与数据库),不能来自 sendContext。
  • .client() 在 SSR 期间也会在服务端执行,使用 localStorage、window 等仅浏览器 API 时需加 typeof window !== 'undefined' 守卫。
  • staticFunctionMiddleware(来自 @tanstack/start-static-server-functions,实验性)必须位于链的最后。

特点区分:

  • 请求中间件(CreateMiddleware):作用范围为所有服务器请求(SSR、路由、函数),方法为 .server(),不支持输入校验与客户端逻辑。
  • 服务器函数中间件(createMiddleware({ type: 'function' })):仅作用于服务器函数,方法包括 .client() 与 .server(),支持 .validator() 输入校验和客户端逻辑。
  • 请求中间件不能依赖服务器函数中间件;服务器函数中间件可同时依赖两者。

使用流程(资料建议):

  • 实现前先对照 Context7 与 Exa 验证当前 API,再浏览目标代码库;修改后运行 fuse-ai-pilot:sniper。
  • 采用请求中间件从服务端可信 cookie 加载会话;在任何依赖客户端发送 ID 的操作前重新检查成员资格或角色。
  • 对需要参数的授权使用工厂模式(按函数配置权限);保持方法链强制顺序。

资料包含的模板:鉴权加基于权限的授权工厂模板;客户端中间件模板(请求头、自定义 fetch、遥测)。

不适用场景:定义 RPC 本体(应使用 start-server-functions)、原始 HTTP 端点(应使用 start-server-routes)、路由级 UX 守卫(应使用 router 的 beforeLoad)。

资料未提供价格、收费模式、性能效果或支持的无关平台信息,这些内容暂未提供。