> Discover all available pages from the documentation index: https://mastra.zisheng.pro/fr/llms.txt # Classe MastraAuthFirebase La classe `MastraAuthFirebase` fournit l’authentification de Mastra au moyen de Firebase Authentication. Elle vérifie les requêtes entrantes à l’aide de tokens d’ID Firebase et s’intègre au serveur Mastra avec l’option `auth`. ## Exemples d’utilisation ### Utilisation de base avec des variables d’environnement ```typescript 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(), }, }) ``` ### Configuration personnalisée ```typescript 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', }), }, }) ``` ## Paramètres du constructeur **serviceAccount** (`string`): Chemin du fichier JSON du compte de service Firebase. Ce fichier contient les identifiants nécessaires pour vérifier les tokens d’ID Firebase côté serveur. (Default: `process.env.FIREBASE_SERVICE_ACCOUNT`) **databaseId** (`string`): ID de la base de données Firestore à utiliser. Généralement '(default)' pour la base de données par défaut. (Default: `process.env.FIRESTORE_DATABASE_ID || process.env.FIREBASE_DATABASE_ID`) **name** (`string`): Nom personnalisé de l’instance du Provider d’authentification. (Default: `"firebase"`) **authorizeUser** (`(user: FirebaseUser) => Promise | boolean`): Fonction d’autorisation personnalisée qui détermine si l’accès doit être accordé à un utilisateur. Appelée après la vérification du token. Par défaut, vérifie la présence d’un document dans la collection 'user\_access', indexée par l’UID de l’utilisateur. ## Variables d’environnement Les variables d’environnement suivantes sont utilisées automatiquement lorsque les options du constructeur ne sont pas fournies : **FIREBASE\_SERVICE\_ACCOUNT** (`string`): Chemin du fichier JSON du compte de service Firebase. Utilisé si l’option serviceAccount n’est pas fournie. **FIRESTORE\_DATABASE\_ID** (`string`): ID de la base de données Firestore. Variable d’environnement principale pour la configuration de la base de données. **FIREBASE\_DATABASE\_ID** (`string`): Autre variable d’environnement pour l’ID de la base de données Firestore. Utilisée si FIRESTORE\_DATABASE\_ID n’est pas définie. ## Comportement d’autorisation par défaut Par défaut, `MastraAuthFirebase` utilise Firestore pour gérer l’accès des utilisateurs : 1. Après la vérification réussie d’un token d’ID Firebase, la méthode `authorizeUser` est appelée 2. Elle vérifie l’existence d’un document dans la collection `user_access`, avec l’UID de l’utilisateur comme ID de document 3. Si le document existe, l’utilisateur est autorisé ; sinon, l’accès est refusé 4. La base de données Firestore utilisée est déterminée par le paramètre `databaseId` ou les variables d’environnement ## Type d’utilisateur Firebase Le type `FirebaseUser` utilisé dans la fonction `authorizeUser` correspond à l’interface `DecodedIdToken` de Firebase, qui comprend : - `uid` : identifiant unique de l’utilisateur - `email` : adresse e-mail de l’utilisateur, si elle est disponible - `email_verified` : indique si l’adresse e-mail est vérifiée - `name` : nom d’affichage de l’utilisateur, s’il est disponible - `picture` : URL de la photo de profil de l’utilisateur, si elle est disponible - `auth_time` : date et heure auxquelles l’utilisateur s’est authentifié - Et les autres claims JWT standard ## Voir aussi [Classe MastraAuthFirebase](https://mastra.zisheng.pro/fr/docs/server/auth/firebase)