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 インスタンスのカスタム名。
環境変数環境変数への直接リンク
コンストラクターのオプションが指定されていない場合、次の環境変数が自動的に使用されます。
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 トークンの検証に成功すると、
authorizeUserメソッドが呼び出されます - ユーザーの UID をドキュメント ID として、
user_accessコレクション内にドキュメントが存在するかどうかを確認します - ドキュメントが存在する場合はユーザーが認可され、存在しない場合はアクセスが拒否されます
- 使用する Firestore データベースは、
databaseIdパラメーターまたは環境変数によって決まります
Firebase ユーザー型Firebase ユーザー型への直接リンク
authorizeUser 関数で使用される FirebaseUser 型は Firebase の DecodedIdToken インターフェースに対応し、次のフィールドが含まれます。
uid:ユーザーの一意の識別子email:ユーザーのメールアドレス(利用可能な場合)email_verified:メールアドレスが検証済みかどうかname:ユーザーの表示名(利用可能な場合)picture:ユーザーのプロフィール画像の URL(利用可能な場合)auth_time:ユーザーが認証された時刻- その他の標準 JWT クレーム