mcpField
B
better-auth

better-auth

github.com/dobroslavradosavljevic安全338 次安装1 天前更新
代码仓库

关于 better-auth

better-auth 技能为使用 Better Auth 构建自托管 TypeScript 身份验证的开发者提供配置、安全与升级指导,覆盖核心库、插件、适配器和框架接入。

主要功能

  1. 01服务端与客户端配置指导
  2. 02插件及数据库适配器说明
  3. 03框架挂载与会话验证
  4. 04版本升级和安全检查

适用场景

  1. 01配置 Better Auth 登录与会话
  2. 02添加插件并生成数据库架构
  3. 03升级身份验证依赖并检查风险

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/dobroslavradosavljevic/skills --skill better-auth

安装后在 Claude Code 中输入/better-auth确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

agents/
openai.yaml
references/
adapters-schema.md
frameworks-client.md
plugins-ecosystem.md
security-patterns.md
source-map.md
usage-guide.md

详细介绍

Better Auth

将此技能用于基于 Better Auth([email protected])的自托管 TypeScript 身份验证:服务端实例、客户端 SDK、插件、适配器、框架挂载和安全性。

快照:2026-10-01。latest 为 1.7.7(稳定版)。不要将 1.7 视为 rc/beta。要求版本 ≥ 1.7.7:更早版本(最早可追溯至 1.4.0-beta.18)存在严重的 Magic Link 账户接管漏洞(GHSA-965c-763c-88jm)和 OAuth Proxy 接管漏洞(GHSA-r4xp-prcw-77qf);不存在 1.6.x 修复版本。如果版本不同,请从 source-map.md 刷新信息。

工作流

  1. 检查本地配置:
    • 核心:better-auth(快照版本 1.7.7)。CLI:bunx auth@latest(包 [email protected])——不要使用过时的 @better-auth/[email protected]。CLI 需要 Node.js ≥ 22.12。
    • 环境变量:BETTER_AUTH_SECRET(≥32)、BETTER_AUTH_URL / baseURL、trustedOrigins。
    • 数据库:Kysely/连接池与 Drizzle/Prisma/Mongo 适配器;辅助存储(Redis)。默认启用架构验证。
    • 插件:服务端插件 + 对应的客户端插件;更改后生成架构。
    • 挂载:通过 auth.handler / 框架辅助函数挂载到 /api/auth/*(默认 basePath)。
  2. 日常设置请先遵循 usage-guide.md。从 1.6 起,先运行 bunx auth@latest upgrade,并参阅 1.7 升级指南——生成的 SQL 并不包含完整升级内容。
  3. 版本有变动时刷新文档。请从 source-map.md 开始。
  4. 按需查看更深入的细节:
  5. 让所有已安装的 @better-auth/* 与核心保持 1.7.x 一致(独立版本线的 utils、infra、agent-auth、dash 除外)。优化时优先使用带作用域的适配器(better-auth/minimal)。
  6. 通过会话冒烟测试(auth.api.getSession)、登录/登出、插件架构迁移,以及生产环境密钥/来源检查进行验证。

核心判断

  • 默认使用 Cookie 数据库会话——不是 JWT。仅当 Cookie 不够用时才使用 jwt / bearer / API 密钥。
  • 在 lib/auth.ts 中创建单例 auth(命名导出有助于 CLI 发现)。单独创建 auth-client.ts。
  • 服务端:使用真实请求标头调用 auth.api.*。客户端:使用 createAuthClient + 框架入口(better-auth/react 等)。
  • 大多数功能都通过插件提供:注册服务端和客户端插件,然后运行 bunx auth@latest generate(ORM)或 migrate(Kysely)。
  • Passkey / API 密钥 / SSO / SCIM / OAuth-provider / MCP / CIMD / Stripe / Expo 均为带作用域的包。MCP 对应 @better-auth/mcp,而不是 better-auth/plugins。
  • **oidcProvider 已移除。**请改用 @better-auth/oauth-provider。不要在 mcp() 旁边同时注册 oauthProvider()——mcp() 就是该提供程序。
  • 通用 OAuth 使用 signIn.social / linkSocial 和 /api/auth/callback/:id。不存在 genericOAuthClient()。
  • 绝不能将中间件中的 Cookie 是否存在视为身份验证依据——必须验证会话。不要为了“修复” CORS 而禁用 CSRF/来源检查。
  • 升级到 1.7.7 需要协调切换:所有共享验证存储的服务端,以及所有 OAuth Proxy 参与方都必须一起升级;升级前发出的待处理 Magic Link 和 OAuth/SAML 状态将失效。
  • 开发环境中的速率限制默认关闭或较弱;内存存储无法支持多实例——生产环境请使用 Redis/数据库。
  • 命令示例优先使用 bun / bunx。

验证

优先使用仓库自带的命令。覆盖相关子集:

  • bun pm ls better-auth,并检查匹配的 @better-auth/* 版本(全部使用 1.7.x,且 ≥ 1.7.7)。
  • 根据需要运行 bunx auth@latest info / secret;插件变更后运行 schema generate/migrate;使用只读命令 bunx auth@latest check schema 验证适配器 schema。
  • 冒烟测试:挂载处理器、getSession、电子邮件或社交登录、退出登录。
  • 插件:确认客户端方法可解析;如已启用,检查组织/2FA/通行密钥/OAuth 提供方/MCP 流程。
  • 生产环境:检查 baseURL、密钥长度、trustedOrigins、HTTPS Cookie、限流存储,以及 schema 验证未失败。
  • 安全性:检查角色/additionalFields 是否设置了 input: false;生产配置中不得包含 testUtils。
  • 从 1.6 升级到 1.7 后:检查 Microsoft oid 行、OAuth 客户端、SCIM 重新配置、Expo await getCookie(),以及应用过该 schema 时对 1.7.0–1.7.2 issuer 的清理。

报告已运行和未运行的检查,以及仍存在的版本假设。

评论

支持 Markdown