跳至主要內容

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 執行個體的自訂名稱。

authorizeUser?:

(user: BetterAuthUser, request: HonoRequest) => Promise<boolean> | boolean
用於判斷是否應授予使用者存取權限的自訂授權函數,會在驗證工作階段後呼叫。預設允許所有持有有效工作階段的已驗證使用者。

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:包含使用者詳細資料的已驗證使用者物件

SessionUser 類型由 Better Auth 依賴套件匯出。

配對規則
配對規則 的直接連結

  • publicprotected 接受完整路徑、萬用字元模式(例如 /api/*)及路徑參數(例如 /users/:id)。
  • 如要設定特定方法的規則,請使用 ["/api/agents", ["GET", "POST"]] 這類元組。
  • 如果路由同時符合 publicprotected,會以 public 為準,無需驗證。
  • 如果兩者皆不符合,路由預設會視為受保護(除非路由明確標示為 requiresAuth: false)。

MastraAuthBetterAuth 類別