MastraAuthBetterAuth 类
MastraAuthBetterAuth 类使用 Better Auth 为 Mastra 应用提供身份验证。它通过 Better Auth Session 验证传入请求,并使用 auth 选项与 Mastra server 集成。
使用示例使用示例的直接链接
src/mastra/index.ts
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
= 'better-auth'
身份验证 Provider 实例的自定义名称。
public?:
Array<string | RegExp | [string, Methods | Methods[]]>
无需身份验证的公共 Route。支持精确路径、通配符和路径参数。
protected?:
Array<string | RegExp | [string, Methods | Methods[]]>
需要身份验证的受保护 Route。支持精确路径、通配符和路径参数。
BetterAuthUser 类型betterauthuser-type的直接链接
BetterAuthUser 类型包含 Better Auth 返回的 Session 和用户信息:
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)。