MastraAuthBetterAuth 類別
MastraAuthBetterAuth 類別使用 Better Auth 為 Mastra 應用程式提供身分驗證。它會使用 Better Auth session 驗證傳入要求,並透過 auth 選項與 Mastra 伺服器整合。
使用範例「使用範例」的直接連結
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[]]>
不需要身分驗證的公開路由。支援完全相符的路徑、萬用字元和路徑參數。
protected?:
Array<string | RegExp | [string, Methods | Methods[]]>
需要身分驗證的受保護路由。支援完全相符的路徑、萬用字元和路徑參數。
BetterAuthUser 型別「betterauthuser-type」的直接連結
BetterAuthUser 型別包含 Better Auth 傳回的 session 與使用者資訊:
interface BetterAuthUser {
session: Session
user: User
}
session:包含 session 中繼資料的 Better Auth session 物件user:包含使用者詳細資料且已通過身分驗證的使用者物件
Session 和 User 型別由 Better Auth 套件匯出。
比對規則「比對規則」的直接連結
public和protected接受完全相符的路徑、萬用字元模式(例如/api/*),以及路徑參數(例如/users/:id)。- 若要設定特定 method 的規則,請使用
["/api/agents", ["GET", "POST"]]之類的 tuple。 - 如果路由同時符合
public和protected,會以public為優先,且不需要身分驗證。 - 如果兩者皆不符合,路由預設會視為受保護路由(除非路由明確標示為
requiresAuth: false)。