用途:在 TypeScript 应用中完成 Better Auth 的基础搭建,包括环境变量与数据层接线、服务端处理器和客户端实例的挂载,以及会话与服务端 API 的安全使用,并保持数据层可选(驱动或适配器)。
主要能力:创建并导出 Better Auth 实例;通过环境变量 BETTER_AUTH_SECRET(32 位以上)和 BETTER_AUTH_URL 进行配置;可传入数据库驱动或适配器,省略数据库则使用无状态会话;支持 emailAndPassword 与 GitHub 等社交登录;提供会话读取(客户端 authClient.useSession()/getSession(),服务端 auth.api.getSession({ headers }))以及服务端 API 调用(auth.api.*,支持 asResponse、returnHeaders);可通过 auth.$Infer 和 authClient.$Infer 进行类型推断,扩展用户 schema 时在客户端使用 inferAdditionalFields。
使用方式:先安装 better-auth;设置 BETTER_AUTH_SECRET 与 BETTER_AUTH_URL;创建 auth.ts 并导出 auth;提供数据库驱动或适配器(或省略以启用无状态会话);挂载处理器(auth.handler 或框架辅助函数);用 createAuthClient 创建客户端。示例:import { betterAuth } from "better-auth"; export const auth = betterAuth({ database: myDatabaseOrAdapter, emailAndPassword: { enabled: true }, socialProviders: { github: { clientId: process.env.GITHUB_CLIENT_ID as string, clientSecret: process.env.GITHUB_CLIENT_SECRET as string } } });。服务端调用示例:const session = await auth.api.getSession({ headers: request.headers });。
注意事项:实例需导出为 auth(或默认导出)以便辅助函数识别;BETTER_AUTH_URL 应与公开基础 URL 保持一致;若修改 /api/auth 基础路径,需向客户端传入完整基础 URL;启用需要数据表的插件前应先执行数据库迁移。
限制:资料未提供具体价格、平台支持范围或性能保证,暂未提供。