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

Vous pouvez intégrer Firebase Authentication à un système d'authentification personnalisé en modifier 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 avec Firebase.

Avant de commencer

  1. Si ce n'est pas déjà fait, suivez les étapes du guide de démarrage.
  2. Installez et configurez le SDK Admin Firebase. Veillez à initialiser le SDK. avec les identifiants appropriés pour votre projet Firebase.

Authentifier avec Firebase

  1. Lorsque les utilisateurs se connectent à votre application, envoyez leurs identifiants (par par exemple, son nom d'utilisateur et son mot de passe) à votre serveur d'authentification. Votre vérifie les identifiants et, s'ils sont valides, crée un jeton Firebase personnalisé puis 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.");
        }
    }
    

Étapes suivantes

Une fois qu'un utilisateur a créé un compte, celui-ci est stocké dans votre projet Firebase et peut être utilisé pour identifier un utilisateur dans toutes les applications de votre projet, quelle que soit la méthode de connexion utilisée.

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

Dans votre base de données Firebase Realtime Database et vos règles de sécurité Cloud Storage, vous pouvez : Obtenez l'ID utilisateur unique de l'utilisateur connecté à partir de la variable auth, puis utilisez-le pour contrôler les données auxquelles un utilisateur peut accéder.

Vous pouvez autoriser les utilisateurs à se connecter à votre appli à l'aide de plusieurs authentifications en associant les identifiants du fournisseur d'authentification) à compte utilisateur existant.

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

await FirebaseAuth.instance.signOut();