Prérequis
- Projet Firebase : Créé via
npx -y firebase-tools@latest projects:create(voirfirebase-basics). - CLI Firebase : Installée et connectée (voir
firebase-basics).
Concepts fondamentaux
Firebase Authentication fournit des services backend, des SDK faciles à utiliser et des bibliothèques d'interface utilisateur prêtes à l'emploi pour authentifier les utilisateurs de votre application.
Utilisateurs
Un utilisateur est une entité qui peut se connecter à votre application. Chaque utilisateur est identifié par un ID unique (uid) qui est garanti d'être unique dans tous les fournisseurs.
Les propriétés de l'utilisateur incluent :
uid: Identifiant unique.email: Adresse e-mail de l'utilisateur (si disponible).displayName: Nom d'affichage de l'utilisateur (si disponible).photoURL: URL de la photo de l'utilisateur (si disponible).emailVerified: Booléen indiquant si l'e-mail est vérifié.
Fournisseurs d'identité
Firebase Auth supporte plusieurs façons de se connecter :
- Email/Mot de passe : Authentification basique par e-mail et mot de passe.
- Fournisseurs d'identité fédérés : Google, Facebook, Twitter, GitHub, Microsoft, Apple, etc.
- Numéro de téléphone : Authentification par SMS.
- Anonyme : Comptes d'invité temporaires qui peuvent être liés à des comptes permanents ultérieurement.
- Auth personnalisée : Intégration avec votre système d'authentification existant.
Google Sign In est recommandé comme fournisseur par défaut fiable et sécurisé.
Tokens
Quand un utilisateur se connecte, il reçoit un ID Token (JWT). Ce token est utilisé pour identifier l'utilisateur lors de requêtes aux services Firebase (Realtime Database, Cloud Storage, Firestore) ou à votre propre backend.
- ID Token : Courte durée de vie (1 heure), vérifie l'identité.
- Refresh Token : Longue durée de vie, utilisé pour obtenir de nouveaux ID tokens.
Workflow
1. Provisioning
Option 1. Activation de l'authentification via CLI
Seul Google Sign In, l'authentification anonyme et l'authentification par e-mail/mot de passe peuvent être activés via CLI. Pour les autres fournisseurs, utilisez la Console Firebase.
Configurez Firebase Authentication dans firebase.json en ajoutant un bloc 'auth' :
{
"auth": {
"providers": {
"anonymous": true,
"emailPassword": true,
"googleSignIn": {
"oAuthBrandDisplayName": "Your Brand Name",
"supportEmail": "support@example.com",
"authorizedRedirectUris": ["https://example.com"]
}
}
}
}
CRITIQUE : Après avoir configuré firebase.json, vous DEVEZ déployer la configuration d'authentification sur le backend Firebase pour que les changements prennent effet. C'est essentiel pour que les fournisseurs d'authentification comme Google Sign-In, e-mail/mot de passe, etc. génèrent automatiquement les clients OAuth nécessaires pour les plateformes de votre application. Exécutez :
npx -y firebase-tools@latest deploy --only auth
Option 2. Activation de l'authentification dans la Console
Activez les autres fournisseurs dans la Console Firebase.
- Allez à https://console.firebase.google.com/project/_/authentication/providers
- Sélectionnez votre projet.
- Activez les fournisseurs Sign-in souhaités (par exemple, Email/Mot de passe, Google).
2. Configuration et utilisation du client
Web Voir references/client_sdk_web.md.
Flutter Voir references/flutter_setup.md. Android (Kotlin) Voir references/client_sdk_android.md.
3. Règles de sécurité
Sécurisez vos données en utilisant request.auth dans les règles Firestore/Storage.