Better Auth 身份认证
将以下提示词粘贴到你的 AI 对话框中:
请根据官方安装指南 https://skillhub.cn/install/skillhub.md 将 @kunlungrowth/kg-better-auth 技能安装到当前 AI 助手中。
技能介绍
认证接入的现实痛点
在 TypeScript/JavaScript 项目里加登录,远不止"调个 API"那么简单。Next.js、Nuxt、SvelteKit 这些框架各有自己的路由和中间件模型,邮箱密码、社交 OAuth、2FA、Passkey 与 RBAC 的组合方式又千差万别。开发者真正卡住的往往是:BETTER_AUTH_SECRET 该放哪、schema 怎么迁移、插件启用后表结构会不会变、受保护路由和会话刷新要怎么衔接。这个技能就是把这套决策过程结构化,避免"照着文档拼凑"导致的安全问题。
技能的核心工作方式
它以认证安全工程师的角色介入,围绕 Better Auth 这个框架无关的认证库展开。核心流程分七步:
- 环境与配置:确认框架类型后,准备
BETTER_AUTH_SECRET与BETTER_AUTH_URL等环境变量。 - 服务端实例:在
auth.ts中配置数据库、邮箱密码、社交 provider,密钥一律走环境变量。 - 数据库迁移:用 Better Auth CLI 的
generate/migrate命令生成并应用 schema。 - 路由挂载:按目标框架挂载 API 处理器,例如 Next.js App Router 下的
app/api/auth/[...all]/route.ts。 - 客户端封装:创建
auth-client.ts,暴露signUp、signIn、useSession等方法。 - 插件取舍:邮箱密码、OAuth、邮箱验证、密码重置、限流、会话属于内置能力;
twoFactor、Passkey/WebAuthn、魔法链接、用户名、组织/多租户、RBAC 则需要额外插件。 - 检查清单:输出一份覆盖安装、迁移、UI、会话、受保护路由、测试与生产的完整清单。
最终产物是一个结构化工件 AuthPlan,包含框架、认证方式、插件列表、环境变量与迁移标志,可以直接交给后端开发、代码评审或 DevOps 消费。
适用边界与注意点
这个技能只面向 JS/TS 技术栈。非 JavaScript 的认证方案、密钥保管与合规审计不在它的覆盖范围内,需要团队自行负责。另外两个容易踩坑的点:启用 2FA 或 Passkey 等插件后,必须用 CLI 重新生成 schema 并迁移,否则表结构缺失会导致运行时报错;社交 provider 的 clientId / clientSecret 必须放在环境变量里,不要硬编码进仓库。
使用场景
- 在Next.js应用中接入邮箱密码登录与GitHub社交登录,需要拿到auth.ts配置、API路由挂载和auth-client.ts的具体实现方案。
- 为已有Nuxt或SvelteKit项目添加2FA双因素认证,需要明确TOTP插件启用后的schema迁移与会话刷新处理。
- 为多租户SaaS产品设计组织与RBAC权限体系,需要输出包含组织隔离、角色规则和环境变量清单的AuthPlan。
- 在Hono或Express项目中实现Passkey无密码登录,需要明确服务端初始化、客户端调用与受保护路由的完整落地步骤。
适合人员
- 在Next.js或Remix项目中负责认证模块的全栈工程师,需要快速落地邮箱密码、社交OAuth和2FA登录流程。
- 为内部管理系统设计权限体系的后端开发者,需要明确RBAC插件如何与现有数据库schema和用户表对接。
- 独立开发SaaS产品的技术人员,需要在无专职安全团队的情况下设计多租户会话管理和组织隔离方案。
- 从其他认证方案迁移到Better Auth的开发者,需要一份环境变量、迁移和插件选择的完整检查清单。