MastraAuthFirebase 類別
MastraAuthFirebase 類別使用 Firebase Authentication 為 Mastra 提供身份驗證。它使用 Firebase ID token 驗證傳入的請求,並透過 auth 選項與 Mastra 伺服器整合。
使用範例使用範例 的直接連結
使用環境變數的基本用法使用環境變數的基本用法 的直接連結
src/mastra/index.ts
import { Mastra } from '@mastra/core'
import { MastraAuthFirebase } from '@mastra/auth-firebase'
// Automatically uses FIREBASE_SERVICE_ACCOUNT and FIRESTORE_DATABASE_ID env vars
export const mastra = new Mastra({
server: {
auth: new MastraAuthFirebase(),
},
})
自訂設定自訂設定 的直接連結
src/mastra/index.ts
import { Mastra } from '@mastra/core'
import { MastraAuthFirebase } from '@mastra/auth-firebase'
export const mastra = new Mastra({
server: {
auth: new MastraAuthFirebase({
serviceAccount: '/path/to/service-account-key.json',
databaseId: 'your-database-id',
}),
},
})
建構函數參數建構函數參數 的直接連結
serviceAccount?:
string
= process.env.FIREBASE_SERVICE_ACCOUNT
Firebase 服務帳戶 JSON 文件的路徑。此文件包含在伺服器端驗證 Firebase ID token 所需的憑證。
databaseId?:
string
= process.env.FIRESTORE_DATABASE_ID || process.env.FIREBASE_DATABASE_ID
要使用的 Firestore 資料庫 ID。預設資料庫通常為 '(default)'。
name?:
string
= "firebase"
身份驗證 Provider 實例的自訂名稱。
環境變數環境變數 的直接連結
未提供建構函數選項時,系統會自動使用以下環境變數:
FIREBASE_SERVICE_ACCOUNT?:
string
Firebase 服務帳戶 JSON 文件的路徑。未提供 serviceAccount 選項時使用。
FIRESTORE_DATABASE_ID?:
string
Firestore 資料庫 ID。資料庫設定的主要環境變數。
FIREBASE_DATABASE_ID?:
string
Firestore 資料庫 ID 的替代環境變數。未設定 FIRESTORE_DATABASE_ID 時使用。
預設授權行為預設授權行為 的直接連結
預設情況下,MastraAuthFirebase 使用 Firestore 管理用戶存取權:
- 成功驗證 Firebase ID token 後,會呼叫
authorizeUser方法 - 它會檢查
user_accesscollection 中是否存在以用戶 UID 作為文件 ID 的文件 - 如果文件存在,用戶便獲得授權;否則會拒絕存取
- 所使用的 Firestore 資料庫由
databaseId參數或環境變數決定
Firebase 用戶類型Firebase 用戶類型 的直接連結
authorizeUser 函數所使用的 FirebaseUser 類型對應 Firebase 的 DecodedIdToken interface,其中包括:
uid:用戶的唯一識別碼email:用戶的電郵地址(如有)email_verified:電郵是否已驗證name:用戶的顯示名稱(如有)picture:用戶個人資料圖片的 URL(如有)auth_time:用戶通過身份驗證的時間- 以及其他標準 JWT claim