SuperAPI AI 工具集

better-auth

安全与审计

查看项目

更新于 10-16 07:20

技能介绍

用途:该技能用于在 TypeScript 项目中集成 Better Auth,覆盖 NestJS 后端(Drizzle ORM + PostgreSQL)与 Next.js App Router 前端两类场景。

主要能力:支持邮箱密码登录、社交登录(GitHub、Google、Facebook、Microsoft)、MFA/2FA(TOTP)、Passkey 无密码认证、魔法链接、受信任设备与备份码、组织与 SSO 多租户、基于会话的受保护路由。

使用方式:按四阶段搭建。数据库阶段安装依赖并配置 Drizzle:npm install drizzle-orm pg @auth/drizzle-adapter better-auth,npm install -D drizzle-kit,生成并执行迁移 npx drizzle-kit generate 与 npx drizzle-kit migrate。后端阶段创建 Drizzle 连接与 Better Auth 实例(drizzleAdapter + socialProviders),并用 @Controller('auth') 暴露 auth.handler。前端阶段用 createAuthClient 配置客户端,在 middleware.ts 中做路由保护,并创建登录页。插件阶段按需加入 twoFactor、passkey、organization、magicLink、sso,添加后需重新执行迁移。类型安全可运行 npx better-auth typegen。

限制与注意事项:需要 Node.js 18+;OAuth 回调与 Passkey 需要 HTTPS,本地可用 ngrok;组织功能需要额外数据表;生产环境建议用 Redis 等可扩展会话存储;密码哈希由 Better Auth 自动处理,不应自行实现;密钥用 openssl rand -base64 32 生成并存于 .env;应校验重定向 URL、对认证端点限流并实现邮箱验证。官方文档、Drizzle ORM、NestJS、Next.js 均为参考资料;更完整的后端、前端与插件配置见技能内 references 目录。