メインコンテンツへ移動

MastraAuthFirebase クラス

MastraAuthFirebase クラスは、Firebase Authentication を使用した認証を Mastra に提供します。Firebase ID トークンを使用して受信リクエストを検証し、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 トークンを検証するために必要な認証情報が含まれます。

databaseId?:

string
= process.env.FIRESTORE_DATABASE_ID || process.env.FIREBASE_DATABASE_ID
使用する Firestore データベース ID。通常、デフォルトデータベースには '(default)' を指定します。

name?:

string
= "firebase"
認証 Provider インスタンスのカスタム名。

authorizeUser?:

(user: FirebaseUser) => Promise<boolean> | boolean
ユーザーにアクセスを許可するかどうかを決定するカスタム認可関数。トークンの検証後に呼び出されます。デフォルトでは、ユーザーの UID をキーとする 'user_access' コレクション内にドキュメントが存在するかどうかを確認します。

環境変数
環境変数への直接リンク

コンストラクターのオプションが指定されていない場合、次の環境変数が自動的に使用されます。

FIREBASE_SERVICE_ACCOUNT?:

string
Firebase サービスアカウントの JSON ファイルへのパス。serviceAccount オプションが指定されていない場合に使用されます。

FIRESTORE_DATABASE_ID?:

string
Firestore データベース ID。データベース設定に使用される主要な環境変数です。

FIREBASE_DATABASE_ID?:

string
Firestore データベース ID の代替環境変数。FIRESTORE_DATABASE_ID が設定されていない場合に使用されます。

デフォルトの認可動作
デフォルトの認可動作への直接リンク

デフォルトでは、MastraAuthFirebase は Firestore を使用してユーザーアクセスを管理します。

  1. Firebase ID トークンの検証に成功すると、authorizeUser メソッドが呼び出されます
  2. ユーザーの UID をドキュメント ID として、user_access コレクション内にドキュメントが存在するかどうかを確認します
  3. ドキュメントが存在する場合はユーザーが認可され、存在しない場合はアクセスが拒否されます
  4. 使用する Firestore データベースは、databaseId パラメーターまたは環境変数によって決まります

Firebase ユーザー型
Firebase ユーザー型への直接リンク

authorizeUser 関数で使用される FirebaseUser 型は Firebase の DecodedIdToken インターフェースに対応し、次のフィールドが含まれます。

  • uid:ユーザーの一意の識別子
  • email:ユーザーのメールアドレス(利用可能な場合)
  • email_verified:メールアドレスが検証済みかどうか
  • name:ユーザーの表示名(利用可能な場合)
  • picture:ユーザーのプロフィール画像の URL(利用可能な場合)
  • auth_time:ユーザーが認証された時刻
  • その他の標準 JWT クレーム

MastraAuthFirebase クラス