用途:在 TanStack Router 中处理路由层面的鉴权与访问控制,与 start-core/auth-server-primitives 配合使用(后者负责会话 Cookie、OAuth state+PKCE、CSRF、限流等)。
主要能力:用 beforeLoad 加 redirect() 在无路径布局路由 _authenticated 上做守卫,放在 src/routes/_authenticated/ 下的路由自动受保护。通过 createRootRouteWithContext 与 RouterProvider 的 context 属性注入实时 auth 状态,避免重建 router。支持回跳(把 location.href 存入 search.redirect,注意用 sanitizeRedirect 防开放重定向)、非重定向的内联登录(未登录时渲染 LoginForm 代替 Outlet,URL 不变)、基于 hasRole/hasAnyRole/hasPermission/hasAnyPermission 的 RBAC 布局路由与页面级校验。
必要用法:redirect() 靠抛出实现,beforeLoad 里有 try/catch 时须用 isRedirect 重新抛出;不要在组件内做鉴权检查(会闪现受保护内容),beforeLoad 在渲染和 loader 之前运行。
限制:路由守卫不保护该路由上的 createServerFn——服务端函数是可被直接 POST 的 RPC 端点,每个涉及用户数据的 createServerFn 都需 middleware(如 authMiddleware)或等价的服务端内检查;根路由始终渲染,不能用条件渲染其组件做鉴权边界。
(资料未提供收费、价格、平台支持范围等信息。)