Cette page a été traduite par l'API Cloud Translation.
Switch to English

État de transmission dans les actions par e-mail

Vous pouvez transmettre l'état via une URL de poursuite lors de l'envoi d'actions par e-mail pour réinitialiser le mot de passe ou de la vérification de l'e-mail d'un utilisateur. Cela permet à l'utilisateur de revenir à l'application une fois l'action terminée. En outre, vous pouvez spécifier s'il faut gérer le lien d'action par e-mail directement à partir d'une application mobile lorsqu'il est installé au lieu d'une page Web.

Cela peut être extrêmement utile dans les scénarios courants suivants:

  • Un utilisateur, qui n'est pas actuellement connecté, peut essayer d'accéder à du contenu qui nécessite que l'utilisateur soit connecté. Cependant, l'utilisateur peut avoir oublié son mot de passe et donc déclencher le flux de réinitialisation du mot de passe. À la fin du flux, l'utilisateur s'attend à revenir à la section de l'application à laquelle il tentait d'accéder.

  • Une application ne peut offrir l'accès qu'à des comptes vérifiés. Par exemple, une newsletter peut demander à l'utilisateur de vérifier son courrier électronique avant de s'abonner. L'utilisateur passerait par le flux de vérification des e-mails et s'attendrait à revenir à l'application pour terminer son abonnement.

  • Dans d'autres cas, l'utilisateur peut avoir démarré le flux depuis son appareil mobile et s'attendre après vérification à revenir à son application mobile au lieu du navigateur.

La possibilité de transmettre l'état via une URL continue est une fonctionnalité puissante fournie par Firebase Auth et qui peut considérablement améliorer l'expérience utilisateur.

Passer l'état / URL de poursuite dans les actions par e-mail

Afin de transmettre en toute sécurité une URL de poursuite, le domaine de l'URL devra être ajouté à la liste blanche dans la console Firebase . Cela se fait dans la section Authentification en ajoutant ce domaine à la liste des domaines autorisés sous l'onglet Méthode de connexion s'il n'y est pas déjà.

Une instance firebase.auth.ActionCodeSettings doit être fournie lors de l'envoi d'un e-mail de réinitialisation de mot de passe ou d'un e-mail de vérification. Cette interface prend les paramètres suivants:

Paramètre Type La description
url chaîne

Définit le lien (état / URL de poursuite) qui a différentes significations dans différents contextes:

  • Lorsque le lien est géré dans les widgets d'action Web, il s'agit du lien profond dans le paramètre de requête continueUrl .
  • Lorsque le lien est géré directement dans l'application, il s'agit du paramètre de requête continueUrl dans le lien profond du lien dynamique.
iOS ({bundleId: string} | non défini) Définit l'ID du bundle iOS. Cela tentera d'ouvrir le lien dans une application iOS si elle est installée. L'application iOS doit être enregistrée dans la console.
android ({packageName: string, installApp: boolean | undefined, minimumVersion: string | undefined} | undefined) Définit le nom du package Android. Cela essaiera d'ouvrir le lien dans une application Android si elle est installée. Si installApp est passé, il spécifie s'il faut installer l'application Android si l'appareil le prend en charge et que l'application n'est pas déjà installée. Si ce champ est fourni sans packageName, une erreur est renvoyée expliquant que packageName doit être fourni en conjonction avec ce champ. Si minimumVersion est spécifié et qu'une ancienne version de l'application est installée, l'utilisateur est redirigé vers le Play Store pour mettre à niveau l'application. L'application Android doit être enregistrée dans la console.
handleCodeInApp (booléen | indéfini) Si le lien d'action par e-mail sera d'abord ouvert dans une application mobile ou un lien Web. Le défaut est faux. Lorsqu'il est défini sur true, le lien du code d'action sera envoyé en tant que lien universel ou lien d'application Android et sera ouvert par l'application si elle est installée. Dans le cas faux, le code sera d'abord envoyé au widget Web, puis, lors de la poursuite, il sera redirigé vers l'application si elle est installée.
dynamicLinkDomain (chaîne | indéfini) Définit le domaine de lien dynamique (ou sous-domaine) à utiliser pour le lien actuel s'il doit être ouvert à l'aide de Firebase Dynamic Links. Étant donné que plusieurs domaines de liens dynamiques peuvent être configurés par projet, ce champ permet d'en choisir un explicitement. Si aucun n'est fourni, le premier domaine est utilisé par défaut.

L'exemple suivant montre comment envoyer un lien de vérification par e-mail qui s'ouvre dans une application mobile en tant que lien dynamique Firebase à l'aide du domaine de lien dynamique personnalisé example.page.link (application iOS com.example.ios ou application Android com.example.android où l'application s'installera si elle n'est pas déjà installée et la version minimale est 12 ). Le lien profond contiendra la charge utile de l'URL continue https://www.example.com/?email=user@example.com .

 var actionCodeSettings = {
  url: 'https://www.example.com/?email=' + firebase.auth().currentUser.email,
  iOS: {
    bundleId: 'com.example.ios'
  },
  android: {
    packageName: 'com.example.android',
    installApp: true,
    minimumVersion: '12'
  },
  handleCodeInApp: true,
  // When multiple custom dynamic link domains are defined, specify which
  // one to use.
  dynamicLinkDomain: "example.page.link"
};
firebase.auth().currentUser.sendEmailVerification(actionCodeSettings)
  .then(function() {
    // Verification email sent.
  })
  .catch(function(error) {
    // Error occurred. Inspect error.code.
  });
 

Firebase Auth utilise Firebase Dynamic Links lors de l'envoi d'un lien destiné à être ouvert dans une application mobile. Pour utiliser cette fonction, les liens dynamiques doivent être configurés dans la console Firebase.

  1. Activez les liens dynamiques Firebase:

    1. Dans la console Firebase , ouvrez la section Liens dynamiques .
    2. Si vous n'avez pas encore accepté les termes des liens dynamiques et créé un domaine de liens dynamiques, faites-le maintenant.

      Si vous avez déjà créé un domaine Dynamic Links, notez-le. Un domaine Dynamic Links ressemble généralement à l'exemple suivant:

      example.page.link

      Vous aurez besoin de cette valeur lorsque vous configurerez votre application iOS ou Android pour intercepter le lien entrant.

  2. Configuration des applications Android:

    1. Si vous prévoyez de gérer ces liens à partir de votre application Android, le nom du package Android doit être spécifié dans les paramètres du projet de la console Firebase. De plus, les SHA-1 et SHA-256 du certificat d'application doivent être fournis.
    2. Vous devrez également configurer le filtre d'intention pour le lien profond dans votre fichier AndroidManifest.xml .
    3. Pour plus d'informations, reportez-vous aux instructions de réception de liens dynamiques Android .
  3. Configuration des applications iOS:

    1. Si vous prévoyez de gérer ces liens à partir de votre application iOS, l'ID du bundle iOS doit être spécifié dans les paramètres du projet Firebase Console. En outre, l'ID App Store et l'ID de l'équipe de développeurs Apple doivent également être spécifiés.
    2. Vous devrez également configurer le domaine de lien universel FDL en tant que domaine associé dans les capacités de votre application.
    3. Si vous prévoyez de distribuer votre application sur les versions iOS 8 et antérieures, vous devrez définir votre ID de bundle iOS comme schéma personnalisé pour les URL entrantes.
    4. Pour plus d'informations, reportez-vous aux instructions de réception de liens dynamiques iOS .

Gestion des actions par e-mail dans une application Web

Vous pouvez spécifier si vous souhaitez d'abord gérer le lien du code d'action à partir d'une application Web, puis rediriger vers une autre page Web ou application mobile une fois l'opération terminée, à condition que l'application mobile soit disponible. Pour ce faire, définissez handleCodeInApp sur false dans l'objet firebase.auth.ActionCodeSettings . Bien qu'un ID de groupe iOS ou un nom de package Android ne soient pas requis, leur fournir permettra à l'utilisateur de se rediriger vers l'application spécifiée une fois le code d'action par e-mail terminé.

L'URL Web utilisée ici est celle configurée dans la section des modèles d'action d'e-mail. Une valeur par défaut est fournie pour tous les projets. Reportez-vous à la personnalisation des gestionnaires d'e-mails pour en savoir plus sur la personnalisation du gestionnaire d'actions d'e-mail.

Dans ce cas, le lien dans le paramètre de requête continueUrl sera un lien FDL dont la charge utile est l' URL spécifiée dans l'objet ActionCodeSettings . Bien que vous puissiez intercepter et gérer le lien entrant de votre application sans aucune dépendance supplémentaire, nous vous recommandons d'utiliser la bibliothèque cliente FDL pour analyser le lien profond pour vous.

Lors de la gestion des actions d'e-mail telles que la vérification d'e-mail, le code d'action du paramètre de requête oobCode doit être analysé à partir du lien profond, puis appliqué via applyActionCode pour que la modification prenne effet, c'est-à-dire l'e-mail à vérifier.

Gestion des actions par e-mail dans une application mobile

Vous pouvez spécifier si vous souhaitez d'abord gérer le lien du code d'action dans votre application mobile, à condition qu'il soit installé. Avec les applications Android, vous avez également la possibilité de spécifier via android.installApp que l'application doit être installée si l'appareil la prend en charge et qu'elle n'est pas déjà installée. Si le lien est cliqué à partir d'un appareil qui ne prend pas en charge l'application mobile, il est ouvert à partir d'une page Web à la place. Pour ce faire, définissez handleCodeInApp sur true dans l'objet firebase.auth.ActionCodeSettings . Le nom du package Android de l'application mobile ou l'identifiant du bundle iOS devra également être spécifié.

L'URL Web de secours utilisée ici, lorsqu'aucune application mobile n'est disponible, est celle configurée dans la section des modèles d'action par e-mail. Une valeur par défaut est fournie pour tous les projets. Reportez-vous à la personnalisation des gestionnaires d'e-mails pour en savoir plus sur la personnalisation du gestionnaire d'actions d'e-mail.

Dans ce cas, le lien d'application mobile envoyé à l'utilisateur sera un lien FDL dont la charge utile est l'URL du code d'action, configuré dans la console, avec les paramètres de requête oobCode , mode , apiKey et continueUrl . Ce dernier sera l' URL origine spécifiée dans l'objet ActionCodeSettings . Bien que vous puissiez intercepter et gérer le lien entrant de votre application sans aucune dépendance supplémentaire, nous vous recommandons d'utiliser la bibliothèque cliente FDL pour analyser le lien profond pour vous. Le code d'action peut être appliqué directement à partir d'une application mobile de la même manière qu'il est géré à partir du flux Web décrit dans la section Personnalisation des gestionnaires d'e-mails .

Lors de la gestion des actions d'e-mail telles que la vérification d'e-mail, le code d'action du paramètre de requête oobCode doit être analysé à partir du lien profond, puis appliqué via applyActionCode pour que la modification prenne effet, c'est-à-dire l'e-mail à vérifier.