MastraAuthBetterAuth 類別
MastraAuthBetterAuth 類別使用 Better Auth 為 Mastra 應用程式提供驗證功能。此類別使用 Better Auth 工作階段驗證傳入的請求,並透過 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 傳回的工作階段及使用者資料:
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)。