> Discover all available pages from the documentation index: https://mastra.zisheng.pro/llms.txt # MastraAuthBetterAuth 类 `MastraAuthBetterAuth` 类使用 Better Auth 为 Mastra 应用提供身份验证。它通过 Better Auth Session 验证传入请求,并使用 `auth` 选项与 Mastra server 集成。 ## 使用示例 ```typescript import { Mastra } from '@mastra/core' import { MastraAuthBetterAuth } from '@mastra/auth-better-auth' import { betterAuth } from 'better-auth' // Create your Better Auth instance const auth = betterAuth({ database: { provider: 'postgresql', url: process.env.DATABASE_URL, }, emailAndPassword: { enabled: true, }, baseURL: process.env.BETTER_AUTH_URL, secret: process.env.BETTER_AUTH_SECRET, }) export const mastra = new Mastra({ server: { auth: new MastraAuthBetterAuth({ auth, }), }, }) ``` ## 构造函数参数 **auth** (`Auth`): 通过 betterAuth({ ... }) 创建的 Better Auth 实例。此项为必填项,并且必须使用受支持的数据库 Provider 正确配置。 **name** (`string`): 身份验证 Provider 实例的自定义名称。 (Default: `'better-auth'`) **authorizeUser** (`(user: BetterAuthUser, request: HonoRequest) => Promise | boolean`): 用于确定是否应授予用户访问权限的自定义授权函数。在 Session 验证后调用。默认允许所有具有有效 Session 的已验证用户。 **public** (`Array`): 无需身份验证的公共 Route。支持精确路径、通配符和路径参数。 **protected** (`Array`): 需要身份验证的受保护 Route。支持精确路径、通配符和路径参数。 ## `BetterAuthUser` 类型 `BetterAuthUser` 类型包含 Better Auth 返回的 Session 和用户信息: ```typescript interface BetterAuthUser { session: Session user: User } ``` - `session`:包含 Session metadata 的 Better Auth Session 对象 - `user`:包含用户详细信息的已验证用户对象 `Session` 和 `User` 类型由 Better Auth package 导出。 ## 匹配规则 - `public` 和 `protected` 接受精确路径、通配符模式(如 `/api/*`)和路径参数(如 `/users/:id`)。 - 对于特定于方法的规则,请使用 `["/api/agents", ["GET", "POST"]]` 这样的 tuple。 - 如果 Route 同时匹配 `public` 和 `protected`,则以 `public` 为准,无需身份验证。 - 如果两者都不匹配,Route 默认视为受保护(除非 Route 明确标记为 `requiresAuth: false`)。 ## 相关内容 [MastraAuthBetterAuth 类](https://mastra.zisheng.pro/docs/server/auth/better-auth)