Vous pouvez transmettre l'état via une URL de poursuite lorsque vous envoyez des actions par e-mail pour la réinitialisation de mot de passe ou lorsque vous validez l'adresse 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 si vous souhaitez gérer le lien d'action par e-mail directement à partir d'une application mobile lorsqu'elle est installée 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 à un contenu qui nécessite qu'il soit connecté. Cependant, l'utilisateur peut avoir oublié son mot de passe et déclencher le flux de réinitialisation de mot de passe. À la fin du parcours, l'utilisateur s'attend à revenir à la section de l'application à laquelle il tentait d'accéder.
Une application ne peut proposer l'accès qu'à des comptes validés. Par exemple, une newsletter peut demander à l'utilisateur de valider son adresse e-mail avant de s'abonner. L'utilisateur doit suivre le flux de validation de l'adresse e-mail et s'attendre à revenir à l'application pour finaliser son abonnement.
Dans d'autres cas, l'utilisateur peut avoir lancé le parcours à partir de son appareil mobile et s'attendre à revenir à son application mobile au lieu du navigateur après la validation.
La possibilité de transmettre l'état via une URL de poursuite est une fonctionnalité puissante fournie par Firebase Auth, qui peut considérablement améliorer l'expérience utilisateur.
Transmettre l'état/l'URL de poursuite dans les actions par e-mail
Pour transmettre une URL de suivi de manière sécurisée, le domaine de l'URL doit être ajouté en tant que domaine autorisé dans la console Firebase. Pour ce faire, dans la section Authentification, ajoutez le domaine à la liste Domaines autorisés dans l'onglet Méthode de connexion, s'il n'y figure 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 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 :
|
iOS |
({bundleId: string}|undefined) | Définit l'ID de bundle iOS. Cette action tentera d'ouvrir le lien dans une application iOS si celle-ci 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. Le lien sera alors essayé dans une application Android si elle est installée. Si installApp est transmis, il spécifie si l'application Android doit être installée si l'appareil est compatible avec celle-ci et si elle n'est pas déjà installée. Si ce champ est fourni sans packageName , une erreur est générée, expliquant que packageName doit être indiqué conjointement 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 |
(boolean|undefined) | Indique si le lien d'action par e-mail doit s'ouvrir d'abord dans une application mobile ou dans un lien Web. La valeur par défaut est "false" (inactif). Si cette règle est définie sur "True", le lien du code d'action est envoyé sous forme de lien universel ou Android App Link, et est ouvert par l'application si elle est installée. Dans le faux cas, le code est d'abord envoyé au widget Web. Si vous continuez, il redirigera vers l'application si elle est installée. |
dynamicLinkDomain |
(chaîne|undefined) | Définit le domaine (ou le sous-domaine) du lien dynamique à utiliser pour l'association actuelle si celle-ci doit être ouverte à l'aide de Firebase Dynamic Links. Étant donné que plusieurs domaines de liaison dynamique 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 validation d'adresse e-mail qui s'ouvrira d'abord 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 sera installée si elle n'est pas déjà installée et dans la version minimale 12
). Le lien profond contiendra la charge utile d'URL de poursuite https://www.example.com/[email protected]
.
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.
});
Configurer Firebase Dynamic Links
Firebase Auth utilise Firebase Dynamic Links lors de l'envoi d'un lien destiné à être ouvert dans une application mobile. Pour utiliser cette fonctionnalité, vous devez configurer Dynamic Links dans la console Firebase.
Activez Firebase Dynamic Links:
- Dans la console Firebase, ouvrez la section Dynamic Links.
-
Si vous n'avez pas encore accepté les conditions d'utilisation de Dynamic Links et créé de domaine Dynamic Links, faites-le maintenant.
Si vous avez déjà créé un domaine Dynamic Links, notez-le. Un domaine Dynamic Links se présente généralement comme suit :
example.page.link
Vous aurez besoin de cette valeur lorsque vous configurerez votre application Apple ou Android pour intercepter le lien entrant.
Configurer des applications Android:
- 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. En outre, les certificats SHA-1 et SHA-256 du certificat d'application doivent être fournis.
- Vous devez également configurer le filtre d'intent pour le lien profond dans votre fichier
AndroidManifest.xml
. - Pour en savoir plus, consultez les instructions de réception d'Android Dynamic Links.
Configurer des applications iOS:
- 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 de la console Firebase. En outre, vous devez également spécifier l'ID de l'App Store et l'ID de l'équipe de développeurs Apple.
- Vous devrez également configurer le domaine de lien universel FDL en tant que domaine associé dans les fonctionnalités de votre application.
- Si vous envisagez de distribuer votre application sur iOS 8 et versions antérieures, vous devez définir votre ID de bundle iOS en tant que schéma personnalisé pour les URL entrantes.
- Pour en savoir plus, consultez les instructions de réception des liens dynamiques iOS.
Gérer les actions par e-mail dans une application Web
Vous pouvez indiquer 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 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 firebase.auth.ActionCodeSettings
. Bien qu'un ID de bundle iOS ou un nom de package Android ne soit pas obligatoire, les fournir permet à l'utilisateur d'être redirigé vers l'application spécifiée une fois le code d'action par e-mail exécuté.
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. 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 dans le paramètre de requête continueUrl
est un lien FDL dont la charge utile correspond au URL
spécifié 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 à votre place.
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 pouvez également spécifier via android.installApp
que l'application doit être installée si l'appareil est compatible et qu'elle n'est pas déjà installée.
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 firebase.auth.ActionCodeSettings
. Vous devrez également spécifier le nom du package Android ou l'ID du bundle iOS de l'application mobile.
Lorsqu'aucune application mobile n'est disponible, l'URL Web de remplacement utilisée ici est celle configurée dans la section des modèles d'action par e-mail. Un par défaut est provisionné 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 sera un lien FDL dont la charge utile est l'URL du code d'action, configurée dans la console, avec les paramètres de requête oobCode
, mode
, apiKey
et continueUrl
. Ce dernier correspond à l'URL
d'origine spécifié 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 à votre place. Le code d'action peut être appliqué directement à partir d'une application mobile, comme il est géré à partir du flux Web décrit dans la section Personnaliser les gestionnaires d'e-mails.
Lors du traitement des actions par e-mail telles que la validation de l'adresse 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 soit prise en compte, c'est-à-dire que l'adresse e-mail doit être validée.