Authentifiez-vous avec Firebase à l'aide d'un système d'authentification personnalisé

Vous pouvez intégrer l'authentification Firebase à un système d'authentification personnalisé en modifiant votre serveur d'authentification pour produire des jetons signés personnalisés lorsqu'un utilisateur se connecte avec succès. Votre application reçoit ce jeton et l'utilise pour s'authentifier auprès de Firebase.

Avant que tu commences

  1. Si ce n'est pas déjà fait, suivez les étapes décrites dans le guide de démarrage .
  2. Installez et configurez le SDK d'administration Firebase . Assurez-vous d' initialiser le SDK avec les informations d'identification correctes pour votre projet Firebase.

S'authentifier avec Firebase

  1. Lorsque les utilisateurs se connectent à votre application, envoyez leurs informations de connexion (par exemple, leur nom d'utilisateur et leur mot de passe) à votre serveur d'authentification. Votre serveur vérifie les informations d'identification et, si elles sont valides, crée un jeton Firebase personnalisé et renvoie le jeton à votre application.

  2. Après avoir reçu le jeton personnalisé de votre serveur d'authentification, transmettez-le à signInWithCustomToken() pour connecter l'utilisateur :

    try {
        final userCredential =
            await FirebaseAuth.instance.signInWithCustomToken(token);
        print("Sign-in successful.");
    } on FirebaseAuthException catch (e) {
        switch (e.code) {
            case "invalid-custom-token":
                print("The supplied token is not a Firebase custom auth token.");
                break;
            case "custom-token-mismatch":
                print("The supplied token is for a different Firebase project.");
                break;
            default:
                print("Unknown error.");
        }
    }
    

Prochaines étapes

Une fois qu'un utilisateur crée un nouveau compte, ce compte est stocké dans le cadre de votre projet Firebase et peut être utilisé pour identifier un utilisateur dans chaque application de votre projet, quelle que soit la méthode de connexion utilisée par l'utilisateur.

Dans vos applications, vous pouvez obtenir les informations de base du profil de l'utilisateur à partir de l'objet User . Voir Gérer les utilisateurs .

Dans vos règles de sécurité de base de données en temps réel Firebase et de stockage cloud, vous pouvez obtenir l'ID utilisateur unique de l'utilisateur connecté à partir de la variable auth et l'utiliser pour contrôler les données auxquelles un utilisateur peut accéder.

Vous pouvez autoriser les utilisateurs à se connecter à votre application à l'aide de plusieurs fournisseurs d'authentification en associant les informations d'identification du fournisseur d'authentification à un compte utilisateur existant.

Pour déconnecter un utilisateur, appelez signOut() :

await FirebaseAuth.instance.signOut();