关于 better-auth-core
better-auth-core 是用于配置 TypeScript Better Auth 的技能,涵盖服务端与客户端接线、安全使用会话和服务端 API,并说明可插拔的数据层及无状态会话。
主要功能
- 01配置 Better Auth 实例
- 02连接服务端处理程序与客户端
- 03使用会话和服务端 API
- 04选择数据库驱动或适配器
- 05推断 TypeScript 类型
适用场景
- 01通过环境变量配置身份验证
- 02接入数据库或使用无状态会话
- 03在客户端或服务端读取会话
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ bobmatnyc/ claude-mpm-skills --skill better-auth-core安装后在 Claude Code 中输入/better-auth-core确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
metadata.jsonreferences/client-server.mdsetup-database.mdtypescript.md详细介绍
Better Auth 核心(TypeScript)
目标
- 使用环境变量和数据层连接配置 Better Auth 实例。
- 接入服务端处理程序和客户端实例。
- 安全地使用会话和服务端 API 方法。
- 保持数据层选项可插拔(驱动或适配器)。
快速开始
- 安装
better-auth。 - 设置
BETTER_AUTH_SECRET(32 个字符以上)和BETTER_AUTH_URL。 - 创建
auth.ts并导出auth。 - 提供
database(驱动或适配器),或者省略该项以使用无状态会话。 - 挂载处理程序(
auth.handler或框架辅助函数)。 - 使用
createAuthClient创建客户端。
import { betterAuth } from "better-auth";
export const auth = betterAuth({
database: myDatabaseOrAdapter, // driver or adapter; omit for stateless mode
emailAndPassword: { enabled: true },
socialProviders: {
github: {
clientId: process.env.GITHUB_CLIENT_ID as string,
clientSecret: process.env.GITHUB_CLIENT_SECRET as string,
},
},
});
核心配置清单
- 将实例导出为
auth(或默认导出),以便辅助函数找到它。 - 确保
BETTER_AUTH_URL与公开基础 URL 保持一致。 - 如果更改
/api/auth基础路径,请向客户端传入完整的基础 URL。 - 启用需要数据表的插件前,先添加数据库迁移。
服务端 API 用法
- 通过
auth.api.*调用服务端端点,并传入{ body, headers, query }。 - 如果需要
Response对象,请使用asResponse: true。 - 使用
returnHeaders: true访问Set-Cookie标头。
import { auth } from "./auth";
const session = await auth.api.getSession({
headers: request.headers,
});
const response = await auth.api.signInEmail({
body: { email, password },
asResponse: true,
});
会话访问
- 客户端:
authClient.useSession()或authClient.getSession()。 - 服务端:
auth.api.getSession({ headers })。
TypeScript 提示
- 使用
auth.$Infer和authClient.$Infer推断类型。 - 扩展用户架构时,在客户端使用
inferAdditionalFields。
参考资料
toolchains/platforms/auth/better-auth/better-auth-core/references/setup-database.mdtoolchains/platforms/auth/better-auth/better-auth-core/references/client-server.mdtoolchains/platforms/auth/better-auth/better-auth-core/references/typescript.md
评论
支持 Markdown