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’utilisationLien direct vers Exemples d’utilisation
Utilisation de base avec des variables d’environnementLien direct vers Utilisation de base avec des variables d’environnement
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(),
},
})
Configuration personnaliséeLien direct vers Configuration personnalisée
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',
}),
},
})
Paramètres du constructeurLien direct vers Paramètres du constructeur
serviceAccount?:
string
= process.env.FIREBASE_SERVICE_ACCOUNT
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.
databaseId?:
string
= process.env.FIRESTORE_DATABASE_ID || process.env.FIREBASE_DATABASE_ID
ID de la base de données Firestore à utiliser. Généralement '(default)' pour la base de données par défaut.
name?:
string
= "firebase"
Nom personnalisé de l’instance du Provider d’authentification.
Variables d’environnementLien direct vers 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éfautLien direct vers Comportement d’autorisation par défaut
Par défaut, MastraAuthFirebase utilise Firestore pour gérer l’accès des utilisateurs :
- Après la vérification réussie d’un token d’ID Firebase, la méthode
authorizeUserest appelée - Elle vérifie l’existence d’un document dans la collection
user_access, avec l’UID de l’utilisateur comme ID de document - Si le document existe, l’utilisateur est autorisé ; sinon, l’accès est refusé
- La base de données Firestore utilisée est déterminée par le paramètre
databaseIdou les variables d’environnement
Type d’utilisateur FirebaseLien direct vers 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’utilisateuremail: adresse e-mail de l’utilisateur, si elle est disponibleemail_verified: indique si l’adresse e-mail est vérifiéename: nom d’affichage de l’utilisateur, s’il est disponiblepicture: URL de la photo de profil de l’utilisateur, si elle est disponibleauth_time: date et heure auxquelles l’utilisateur s’est authentifié- Et les autres claims JWT standard