SuperAPI AI 工具集

betterauth-tanstack-convex

安全与审计

查看项目

更新于 10-15 23:32

技能介绍

用途:该技能提供将 Better Auth 身份认证与 Convex 后端、TanStack Start 框架集成的指导,覆盖从安装到 SSR 兼容认证流程的完整配置过程。适用场景包括在新 Convex + TanStack Start 项目中设置认证、排查 Better Auth 配置问题、实现注册/登录/登出流程、配置带 expectAuth: true 的 SSR 认证,以及添加需认证的服务端函数。

主要能力与用法:资料给出所需依赖安装命令,需原样执行:npm install convex@latest @convex-dev/better-auth;npm install better-auth@1.4.9 --save-exact;npm install @types/node --save-dev。环境变量通过 Convex CLI 设置:npx convex env set BETTER_AUTH_SECRET=$(openssl rand -base64 32) 与 npx convex env set SITE_URL http://localhost:3000;.env.local 中配置 CONVEX_DEPLOYMENT、VITE_CONVEX_URL、VITE_CONVEX_SITE_URL、VITE_SITE_URL。文件结构方面,convex/convex.config.ts 注册 Better Auth 组件,convex/auth.config.ts 配置认证提供方,convex/auth.ts 创建 Better Auth 实例与 authComponent,convex/http.ts 注册认证 HTTP 路由,src/lib/auth-client.ts 与 src/lib/auth-server.ts 分别提供客户端与服务端认证工具,src/routes/api/auth/$.ts 代理认证请求到 Convex,src/routes/__root.tsx 提供认证 Provider 包装与 SSR token。常用导入包括客户端的 authClient、服务端的 getToken/fetchAuthQuery/fetchAuthMutation,以及后端的 authComponent/createAuth。后端认证检查使用 const user = await authComponent.getAuthUser(ctx),未登录则抛出 "Not authenticated"。使用 expectAuth: true 时,登出后需重载页面,示例为 await authClient.signOut({ fetchOptions: { onSuccess: () => location.reload() } })。

关键配置与限制:vite.config.ts 中需设置 ssr: { noExternal: ['@convex-dev/better-auth'] } 以避免模块解析问题;ConvexQueryClient 需传入 { expectAuth: true } 以实现无缝 SSR 认证;根组件需按顺序包装:ConvexBetterAuthProvider(最外层)、QueryClientProvider、含 <Outlet /> 的 RootDocument。更完整的设置指南见 references/setup-guide.md。资料未提供收费、价格、平台或效果相关信息。