SuperAPI AI 工具集

auth-server-primitives

通用与其它

查看项目

更新于 10-15 23:41

技能介绍

用途:讲解 TanStack Start 服务端认证的会话存储、Cookie 签发、OAuth 流程、密码重置加固、CSRF 与限流;路由侧(_authenticated、beforeLoad 重定向、RBAC)见 router-core/auth-and-guards。

核心原则:数据/API 边界优先保护,触及私有数据的 server function、server route 和 API 端点必须在 handler 或 middleware 内强制鉴权,路由守卫只是页面体验不是数据安全边界;校验客户端标识形状(如 z.string().uuid().parse)不等于授权,仍需按会话主体重新校验成员关系;会话/Cookie 须在 .handler() 或 middleware .server() 内读取,不能在模块作用域读取(Cloudflare Workers 上为 undefined)。

主要能力与用法:以 HttpOnly、Secure、SameSite、path=/、__Host- 前缀 Cookie 存会话,配 maxAge,不用 localStorage/sessionStorage;用 setCookie 写入,避免 setResponseHeader('Set-Cookie') 覆盖其他 Cookie。用 createMiddleware 集中加载会话,把 authMiddleware 挂到需要的 server function 上;登录用 .validator() 校验输入、对不存在用户也执行 dummy hash 验证、登录与权限变更时轮换会话;登出撤销会话并清除 Cookie;OAuth 授权码流程生成一次性 state 与 PKCE verifier 存短期签名 Cookie,回调校验 state;密码重置无论邮箱是否存在都返回相同响应与耗时;非 GET 请求校验完整 Origin;登录等端点按 IP 滑动窗口限流。

限制与常见错误:把路由守卫当作 server function 鉴权(RPC 可被直接调用);只做 UUID 形状校验而不查成员资格;按邮箱是否存在返回不同响应;模块作用域读 Cookie/env;会话长期不轮换。生产清单要求每个接收输入的 server function 使用 .validator(),密码用 bcrypt/scrypt/Argon2 哈希,记录认证事件并测试未认证直调应被拒绝。具体数据库、限流实现与部署细节资料未提供。