État de transmission dans les actions d'e-mail

Vous pouvez transmettre l'état via une URL de suivi lors de l'envoi d'actions par e-mail concernant le mot de passe réinitialise ou valide l'adresse e-mail d'un utilisateur. Cela permet à l'utilisateur d'être sont renvoyés à l'application une fois l'action terminée. En outre, vous pouvez spécifier gérer ou non le lien d'action d'e-mail directement à partir d'une application mobile il est installé à la place d’une page Web.

Cela peut s'avérer extrêmement utile dans les scénarios courants suivants:

  • Un utilisateur qui n'est pas actuellement connecté tente peut-être d'accéder à du contenu nécessite que l'utilisateur soit connecté. Cependant, l'utilisateur peut avoir oublié son mot de passe et déclenchera donc le flux de réinitialisation de mot de passe. À la fin de le flux, l'utilisateur s'attend à revenir à la section de l'application qu'il que vous essayez d'accéder.

  • Une application ne peut proposer l'accès qu'à des comptes validés. Par exemple, une application de newsletter peut demander à l'utilisateur de valider son adresse e-mail avant de s'abonner. L'utilisateur suivrait le flux de validation de l'adresse e-mail et s'attend à à être renvoyés à l'application pour finaliser leur abonnement.

  • En général, lorsqu'un utilisateur commence un flux de réinitialisation de mot de passe ou de vérification d'adresse e-mail sur une application Apple qu’ils s’attendent à terminer le flux au sein de l’application ; la possibilité de l'état de la transmission via l'URL continue rend cela possible.

La possibilité de transmettre un état via une URL de poursuite est une fonctionnalité efficace Firebase Auth permet d'améliorer considérablement l'expérience utilisateur.

État de transmission/URL de poursuite des actions dans les actions relatives à l'e-mail

Pour transmettre une URL de suivi de manière sécurisée, le domaine de l'URL doit : être ajoutées à la liste d'autorisation dans la console Firebase. Pour ce faire, accédez à la section Authentification, puis ajoutez ce domaine au Domaines autorisés dans l'onglet Méthode de connexion, le cas échéant.

Vous devez fournir une instance ActionCodeSettings lors de l'envoi un e-mail de réinitialisation du mot de passe ou un e-mail de validation. Cette interface utilise les paramètres suivants :

Paramètre Type Description
url Chaîne

Définit le lien (URL d'état/de poursuite), qui a différentes significations selon le contexte :

  • 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 Paramètre de requête continueUrl dans le lien profond du Lien dynamique.
iOSBundleId Chaîne Définit l'ID du bundle. Cela tentera d'ouvrir le lien dans une application Apple si quand il est installé. L'application doit être enregistrée dans la console. Si non L'ID du bundle est fourni, la valeur de ce champ est définie sur l'ID du bundle le bundle principal de l'application.
androidPackageName Chaîne Définit le nom du package Android. Cela tentera d'ouvrir le lien dans une l'application Android si elle est installée.
androidInstallApp Bool Indique si l'application Android doit être installée (si l'appareil est compatible) et que l'application n'est pas déjà installée. Si ce champ est fourni sans packageName, une erreur est générée expliquant que le packageName doit être fournies conjointement avec ce champ.
androidMinimumVersion Chaîne Version minimale de l'application compatible avec ce flux. Si la valeur minimumVersion est spécifiée et qu'une version antérieure 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 Indique si le lien d'action par e-mail sera ouvert dans une application mobile ou sur un site Web . La valeur par défaut est "false" (inactif). Si cette valeur est définie sur "true", le lien du code d'action sera envoyé en tant que lien universel ou Android App Link, et sera ouvert par l'application si elle est installée. Dans le cas d'une erreur "false", le code est envoyé dans un premier temps, puis sur "Continuer" vous redirige vers l'application si installés.
dynamicLinkDomain Chaîne Définit le domaine (ou le sous-domaine) du lien dynamique à utiliser pour le lien actuel. si elle doit être ouverte à l'aide de Firebase Dynamic Links. Comme plusieurs dynamiques peuvent être configurés par projet, ce champ fournit la possibilité d'en choisir une explicitement. Si aucun domaine n'est indiqué, le premier domaine est utilisé par défaut.

L'exemple suivant montre comment envoyer un lien de validation de l'adresse e-mail qui s'ouvrira d'abord dans une application mobile sous la forme d'un lien dynamique Firebase domaine du lien dynamique example.page.link (application iOS com.example.ios ou application Android com.example.android où l'application sera installé s'il n'est pas déjà installé et que la version minimale est 12). La le lien profond contiendra la charge utile de l'URL de suivi https://www.example.com/?email=user@example.com

final user = FirebaseAuth.instance.currentUser;

final actionCodeSettings = ActionCodeSettings(
  url: "http://www.example.com/verify?email=${user?.email}",
  iOSBundleId: "com.example.ios",
  androidPackageName: "com.example.android",
);

await user?.sendEmailVerification(actionCodeSettings);

Firebase Auth utilise Firebase Dynamic Links lors de l'envoi d'une qui doit être ouvert dans une application mobile. Pour utiliser cette , vous devez configurer les liens dynamiques dans la console Firebase.

  1. Activez Firebase Dynamic Links :

    1. Dans la console Firebase, ouvrez la section Liens dynamiques.

    2. Si vous n'avez pas encore accepté les conditions d'utilisation des liens dynamiques et créé de domaine de liens dynamiques, faites-le maintenant.

    3. Si vous avez déjà créé un domaine Dynamic Links, prenez-en note. Un domaine de liens dynamiques se présente généralement comme suit :

      example.page.link

    4. Vous aurez besoin de cette valeur lorsque vous configurerez votre application Apple ou Android pour intercepte le lien entrant.

  2. Configurer des applications Android:

    1. Si vous prévoyez de gérer ces liens depuis votre application Android, Vous devez spécifier le nom du package Android dans la console Firebase paramètres du projet. De plus, les valeurs SHA-1 et SHA-256 du certificat de l'application doivent être fournies.
    2. Vous devez aussi configurer le filtre d'intent pour le lien profond dans votre fichier AndroidManifest.xml.
    3. Pour en savoir plus, consultez Receiving Android Dynamic Links instructions (Recevoir des instructions sur les liens dynamiques Android).
  3. Configurer les applications Apple :

    1. Si vous prévoyez de gérer ces liens depuis votre application, L'ID du bundle doit être spécifié dans la console Firebase paramètres du projet. En outre, vous devez également spécifier l'ID de l'App Store et l'ID de l'équipe de développeurs Apple.
    2. Vous devez également configurer le domaine du lien universel FDL en tant que Domaine associé dans les fonctionnalités de votre application.
    3. Si vous prévoyez de distribuer votre application sur les versions iOS 8 et antérieures, vous devez définir votre ID de bundle comme schéma personnalisé pour les URL entrantes.
    4. Pour en savoir plus à ce sujet, consultez Instructions de réception des liens dynamiques vers les plates-formes Apple

Gérer les actions relatives aux e-mails dans une application Web

Vous pouvez indiquer si vous souhaitez gérer le lien du code d'action à partir d'un site Web une application, puis vous redirigez vers une autre page Web ou une autre 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 ActionCodeSettings. Alors que un ID de bundle ou du package Android ne sont pas obligatoires. Si vous les fournissez, l'utilisateur pourra pour être redirigé vers l'application spécifiée une fois le code d'action de l'e-mail terminé.

L'URL Web utilisée ici est celle configurée dans la section "Modèles d'action par e-mail". Un service par défaut est provisionné pour tous les projets. Consultez personnalisation des gestionnaires de messagerie pour en savoir plus sur comment personnaliser le gestionnaire d'actions des e-mails.

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

Lorsque vous gérez des actions par e-mail telles que la validation par 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 le changement prenne effet, c'est-à-dire que l'e-mail soit validé.

Gérer les actions relatives aux e-mails dans une application mobile

Vous pouvez spécifier si vous souhaitez gérer le lien du code d'action dans votre application mobile en premier, à condition qu'elle soit installée. Avec les applications Android, vous avez également la possibilité de le spécifier via androidInstallApp L'application doit être installée si l'appareil est compatible et si elle n'est pas déjà installés. Si le lien est cliqué à partir d'un appareil qui n'est pas compatible avec l'application mobile, il s'ouvre à partir d'une page Web. Pour ce faire, définissez handleCodeInApp sur true dans l'objet ActionCodeSettings. La le nom du package Android ou l'ID du bundle de l'application mobile doit également être L'URL Web de remplacement utilisée ici, lorsqu'aucune application mobile n'est disponible, est celui configuré dans la section des modèles d'action par e-mail. Un paramètre par défaut est pour tous les projets. Pour en savoir plus sur la personnalisation du gestionnaire d'actions de messagerie, consultez la section Personnaliser les gestionnaires de messagerie.

Dans ce cas, le lien vers l'application mobile envoyé à l'utilisateur est un lien FDL dont est l'URL du code d'action, configurée dans la console, avec la requête paramètres oobCode, mode, apiKey et continueUrl. Cette dernière option sera la la valeur URL d'origine spécifiée dans ActionCodeSettings. Bien que vous puissiez intercepter et gérer de votre application sans aucune dépendance supplémentaire, nous vous recommandons à l'aide de la bibliothèque cliente FDL pour analyser le lien profond à votre place. Le code d'action directement depuis une application mobile, de la même manière qu'avec un le flux Web décrit dans le Personnaliser les gestionnaires de messagerie.

Lorsque vous gérez des actions par e-mail, telles que la validation de l'adresse e-mail, le code d'action du Le paramètre de requête oobCode doit être analysé à partir du lien profond, puis appliqué. via applyActionCode pour que la modification soit prise en compte (autrement dit, l'adresse e-mail à valider).