Connecter un utilisateur avec une adresse e-mail via Identity Platform

Découvrez comment utiliser Identity Platform pour connecter un utilisateur avec un adresse e-mail et mot de passe.


Pour obtenir des instructions détaillées sur cette tâche directement dans la console Google Cloud, cliquez sur Visite guidée :

Visite guidée


Avant de commencer

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Make sure that you have the following role or roles on the project: Identity Platform Admin, Service Usage Admin

    Check for the roles

    1. In the Google Cloud console, go to the IAM page.

      Go to IAM
    2. Select the project.
    3. In the Principal column, find all rows that identify you or a group that you're included in. To learn which groups you're included in, contact your administrator.

    4. For all rows that specify or include you, check the Role colunn to see whether the list of roles includes the required roles.

    Grant the roles

    1. In the Google Cloud console, go to the IAM page.

      Accéder à IAM
    2. Sélectionnez le projet.
    3. Cliquez sur Accorder l'accès.
    4. Dans le champ Nouveaux comptes principaux, saisissez votre identifiant utilisateur. Il s'agit généralement de l'adresse e-mail d'un compte Google.

    5. Dans la liste Sélectionner un rôle, sélectionnez un rôle.
    6. Pour attribuer des rôles supplémentaires, cliquez sur Ajouter un autre rôle et ajoutez chaque rôle supplémentaire.
    7. Cliquez sur Enregistrer.
    8. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

      Go to project selector

    9. Make sure that billing is enabled for your Google Cloud project.

    10. Make sure that you have the following role or roles on the project: Identity Platform Admin, Service Usage Admin

      Check for the roles

      1. In the Google Cloud console, go to the IAM page.

        Go to IAM
      2. Select the project.
      3. In the Principal column, find all rows that identify you or a group that you're included in. To learn which groups you're included in, contact your administrator.

      4. For all rows that specify or include you, check the Role colunn to see whether the list of roles includes the required roles.

      Grant the roles

      1. In the Google Cloud console, go to the IAM page.

        Accéder à IAM
      2. Sélectionnez le projet.
      3. Cliquez sur Accorder l'accès.
      4. Dans le champ Nouveaux comptes principaux, saisissez votre identifiant utilisateur. Il s'agit généralement de l'adresse e-mail d'un compte Google.

      5. Dans la liste Sélectionner un rôle, sélectionnez un rôle.
      6. Pour attribuer des rôles supplémentaires, cliquez sur Ajouter un autre rôle et ajoutez chaque rôle supplémentaire.
      7. Cliquez sur Enregistrer.

      Activer Identity Platform

      1. Dans la console Google Cloud, accédez à la page Identity Platform Cloud Marketplace.

        Accéder à Identity Platform

      2. Cliquez sur Activer Identity Platform.

Configurer une connexion par adresse e-mail

  1. Accédez à la page Fournisseurs d'identité.

    Accéder à Identity Platform Providers

  2. Sur la page Identity Providers (Fournisseurs d'identité), cliquez sur Add a provider (Ajouter un fournisseur).

  3. Dans la liste Sélectionner un fournisseur, sélectionnez Adresse e-mail/Mot de passe.

  4. Cliquez sur le bouton bascule Activé pour l'activer.

  5. Pour enregistrer les paramètres du fournisseur, cliquez sur Enregistrer.

Créer un compte utilisateur

  1. Dans la console Google Cloud, accédez à la page Utilisateurs.

    Accéder à "Utilisateurs"

  2. Cliquez sur Ajouter un utilisateur.

  3. Dans le champ Adresse e-mail, saisissez une adresse e-mail et un mot de passe. Notez ces deux valeurs, car vous en aurez besoin plus tard.

  4. Pour ajouter l'utilisateur, cliquez sur Ajouter. Le nouvel utilisateur est répertorié dans la section Utilisateurs. .

Connecter l'utilisateur

La procédure à suivre pour connecter l'utilisateur dépend de la version du SDK utilisée par votre application. Assurez-vous de suivre la procédure appropriée pour votre application.

SDK v9 (modulaire)

Installer le SDK et initialiser Firebase

La version 9 du SDK JS Firebase utilise un Module JavaScript .

Ce workflow utilise npm et nécessite des bundlers de modules ou un framework JavaScript car le SDK v9 est optimisé pour fonctionner bundlers de modules sur éliminez le code inutilisé (tree-shaking) et diminuez la taille du SDK.

Pour utiliser le SDK v9, procédez comme suit :

  1. À partir du répertoire du projet, installez Firebase à l'aide de npm:

    npm install firebase
  2. Initialisez Firebase dans votre application et créez un objet Application Firebase :

    import { initializeApp } from 'firebase/app';
    
    const firebaseConfig = {
        apiKey: "API_KEY",
        authDomain: "AUTH_DOMAIN"
    };
    
    const app = initializeApp(firebaseConfig);

    Remplacez les éléments suivants :

    • API_KEY : apiKey de votre projet Firebase.
    • AUTH_DOMAIN : authDomain de votre projet Firebase.

    Vous trouverez ces valeurs dans la configuration du projet Firebase de votre application.

    Une application Firebase est un objet de type conteneur qui stocke une configuration courante et partage l'authentification entre les services Firebase. Après avoir initialisé application Firebase dans votre code, vous pouvez ajouter et commencer à utiliser Firebase services.

Accéder à Identity Platform dans votre code JavaScript

Maintenant que vous avez initialisé le SDK Firebase, vous pouvez l'utiliser n'importe où dans votre l'application. Par exemple, voici une application qui tente de se connecter à un compte et afficher le résultat sur une page Web.

import { initializeApp } from 'firebase/app';
import {
  onAuthStateChanged,
  signInWithEmailAndPassword,
  getAuth
} from 'firebase/auth';

const firebaseConfig = {
  apiKey: "API_KEY",
  authDomain: "AUTH_DOMAIN"
};
const app = initializeApp(firebaseConfig);
const auth = getAuth(app, {/* extra options */ });

document.addEventListener("DOMContentLoaded", () => {
  onAuthStateChanged(auth, (user) => {
      if (user) {
          document.getElementById("message").innerHTML = "Welcome, " + user.email;
      }
      else {
          document.getElementById("message").innerHTML = "No user signed in.";
      }
  });
  signIn();
});

function signIn() {
  const email = "EMAIL_ID";
  const password = "PASSWORD";
  signInWithEmailAndPassword(auth, email, password)
      .catch((error) => {
          document.getElementById("message").innerHTML = error.message;
      });
}

Remplacez les éléments suivants :

  • API_KEY : apiKey de votre projet Firebase.
  • AUTH_DOMAIN : authDomain de votre projet Firebase.
  • EMAIL_ID: adresse e-mail de l'utilisateur que vous avez créée précédemment dans ce guide.
  • PASSWORD: mot de passe utilisateur que vous avez créé précédemment dans ce guide

Utiliser un bundler de module pour réduire la taille

Le SDK Web Firebase est conçu pour fonctionner avec les bundles de modules afin de supprimer code inutilisé (tree-shaking). Nous vous recommandons vivement d'utiliser cette approche applications de production. Des outils tels que l'interface de ligne de commande Angular Next.js, CLI Vue, ou Créer une application React gèrent automatiquement le regroupement de modules pour les bibliothèques installées via npm et importés dans votre codebase.

Par exemple, vous pouvez utiliser Webpack pour générer un dossier dist contenant votre application groupée et le code de dépendance. Pour en savoir plus, consultez la section Utiliser des outils de regroupement de modules avec Firebase.

Importer votre code JavaScript dans votre page

  1. Créez un fichier nommé index.html :

  2. Ajoutez deux conteneurs HTML de base, puis importez le fichier JS groupé.

    <script defer src="js/bundled.js"></script>
    <div>Identity Platform Quickstart</div>
    <div id="message">Loading...</div>
    
  3. Lancez index.html dans votre navigateur Web. Un message de bienvenue contenant l'adresse e-mail de votre utilisateur s'affiche.

SDK v8 (ancien)

Créer une page Web

  1. Sur votre machine locale, créez un fichier nommé index.html.

  2. Dans le fichier HTML, ajoutez deux conteneurs HTML:

    <div>Identity Platform Quickstart</div>
    <div id="message">Loading...</div>
    

Initialiser le SDK client Identity Platform avec votre clé API

  1. Dans la console Google Cloud, accédez à la page Fournisseurs d'identité.

    Accéder à "Fournisseurs d'identité"

  2. Cliquez sur Informations sur la configuration de l'application.

  3. Copiez le code d'initialisation dans index.html.

Connecter l'utilisateur

  1. Pour connecter l'utilisateur, copiez le code suivant dans index.html:

    <script>
      var email = "EMAIL_ID";
      var password = "PASSWORD";
    
      firebase.auth().onAuthStateChanged(function(user) {
        if (user) {
          document.getElementById("message").innerHTML = "Welcome, " + user.email;
        } else {
          document.getElementById("message").innerHTML = "No user signed in.";
        }
      });
    
      firebase.auth().signInWithEmailAndPassword(email, password).catch(function(error) {
        document.getElementById("message").innerHTML = error.message;
      });
    </script>
    

    Ce code appelle signInWithEmailAndPassword(), puis traite le résultat avec le rappel onAuthStateChanged().

    Remplacez les éléments suivants :

    • EMAIL_ID: adresse e-mail de l'utilisateur que vous avez créé précédemment
    • PASSWORD: mot de passe de l'utilisateur que vous avez créé précédemment
  2. Ouvrez index.html dans votre navigateur Web. Un message de bienvenue contenant l'e-mail de votre utilisateur s'affiche.

Un nombre limité de tentatives de connexion utilisateur infructueuses est autorisé. Après plusieurs tentatives de connexion rapides et infructueuses, l'utilisateur est temporairement exclu de son compte.

Pour en savoir plus sur les autres limites d'Identity Platform, consultez la section Quotas et limites.

Effectuer un nettoyage

Pour éviter que les ressources utilisées sur cette page soient facturées sur votre compte Google Cloud, procédez comme suit :

Supprimer le fournisseur et l'utilisateur

Si vous avez utilisé un projet Google Cloud existant, supprimez le fournisseur et l'utilisateur que vous avez créés pour éviter que des frais ne soient facturés sur votre compte :

  1. Dans la console Google Cloud, accédez à la page Fournisseurs d'identité.

    Accéder à "Fournisseurs d'identité"

  2. Pour supprimer le fournisseur, cliquez sur Supprimer à côté de son nom. Pour confirmer l'opération, cliquez sur Supprimer.

  3. Dans la console Google Cloud, accédez à la page Utilisateurs.

    Accéder à "Utilisateurs"

  4. Pour supprimer l'utilisateur que vous avez créé, cliquez sur Supprimer à côté du nom utilisateur. Pour confirmer l'opération, cliquez sur Supprimer.

Supprimer le projet

Le moyen le plus simple d'empêcher la facturation est de supprimer le projet que vous avez créé pour ce tutoriel.

Pour supprimer le projet :

  1. In the Google Cloud console, go to the Manage resources page.

    Go to Manage resources

  2. In the project list, select the project that you want to delete, and then click Delete.
  3. In the dialog, type the project ID, and then click Shut down to delete the project.

Étape suivante

Dans une application réelle, vos utilisateurs s'inscrivent via une page d'enregistrement dédiée, puis se connectent en saisissant leur adresse e-mail et leur mot de passe. Identity Platform propose une interface utilisateur d'authentification prédéfinie que vous pouvez utiliser pour ces pages. Vous pouvez aussi créer la vôtre. Vous pouvez également accepter des méthodes de connexion supplémentaires, telles que des fournisseurs de réseaux sociaux (par exemple, Facebook ou Google), des numéros de téléphone, OIDC ou SAML.

Apprenez-en plus sur les sujets suivants :