> Discover all available pages from the documentation index: https://mastra.zisheng.pro/zh-HK/llms.txt # MastraAuthBetterAuth 類別 `MastraAuthBetterAuth` 類別使用 Better Auth 為 Mastra 應用程式提供驗證功能。此類別使用 Better Auth 工作階段驗證傳入的請求,並透過 `auth` 選項與 Mastra 伺服器整合。 ## 使用範例 ```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`): 用於判斷是否應授予使用者存取權限的自訂授權函數,會在驗證工作階段後呼叫。預設允許所有持有有效工作階段的已驗證使用者。 **public** (`Array`): 無需驗證的公開路由。支援完整路徑、萬用字元及路徑參數。 **protected** (`Array`): 需要驗證的受保護路由。支援完整路徑、萬用字元及路徑參數。 ## `BetterAuthUser` 類型 `BetterAuthUser` 類型包含 Better Auth 傳回的工作階段及使用者資料: ```typescript interface BetterAuthUser { session: Session user: User } ``` - `session`:包含工作階段中繼資料的 Better Auth 工作階段物件 - `user`:包含使用者詳細資料的已驗證使用者物件 `Session` 和 `User` 類型由 Better Auth 依賴套件匯出。 ## 配對規則 - `public` 和 `protected` 接受完整路徑、萬用字元模式(例如 `/api/*`)及路徑參數(例如 `/users/:id`)。 - 如要設定特定方法的規則,請使用 `["/api/agents", ["GET", "POST"]]` 這類元組。 - 如果路由同時符合 `public` 和 `protected`,會以 `public` 為準,無需驗證。 - 如果兩者皆不符合,路由預設會視為受保護(除非路由明確標示為 `requiresAuth: false`)。 ## 相關內容 [MastraAuthBetterAuth 類別](https://mastra.zisheng.pro/zh-HK/docs/server/auth/better-auth)