Authentification avec Firebase à l'aide d'un système d'authentification personnalisé

Vous pouvez intégrer Firebase Authentication à 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 vous ne l'avez pas déjà fait, suivez les étapes du guide de démarrage .
  2. Installez et configurez le SDK Firebase Admin . 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 identifiants 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("Unkown error.");
        }
    }
    

Prochaines étapes

Une fois qu'un utilisateur a créé 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' User à partir de l'objet Utilisateur. Voir Gérer les utilisateurs .

Dans vos règles de sécurité Firebase Realtime Database et Cloud Storage, 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 liant les informations d'identification du fournisseur d'authentification ) à un compte utilisateur existant.

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

await FirebaseAuth.instance.signOut();