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 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 s'avérer 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é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 donner accès qu'à des comptes validés. Pour Par exemple, une newsletter peut demander à l'utilisateur de valider son adresse e-mail avant à 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é la procédure depuis son appareil mobile et s'attendre à être redirigé vers son application mobile après la validation, plutôt que vers le navigateur.
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 blanche 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.
Un élément ActionCodeSettings instance doit être fournie lors de l'envoi d'un e-mail de réinitialisation du mot de passe ou e-mail de validation. Il peut être créé avec la classe ActionCodeSettings.Builder qui contient les méthodes suivantes:
Méthode | Description |
---|---|
setUrl(String url) |
Définit le lien (URL d'état/de poursuite), qui a différentes significations selon le contexte :
|
setIOSBundleId(String iOSBundleId) |
Définit l'ID du bundle iOS. Le lien s'ouvrira dans une application iOS si quand il est installé. L'application iOS doit être enregistrée dans la console. |
setAndroidPackageName(String androidPackageName, boolean installIfNotAvailable, String minimumVersion) |
Définit le nom du package Android. Cela tentera d'ouvrir le lien dans une
l'application Android si elle est installée. Si installIfNotAvailable est défini sur true , il spécifie
installer ou non l'application Android (si l'appareil est compatible) et l'application ;
n'est pas déjà installé. 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. |
setHandleCodeInApp(boolean status) |
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. |
setDynamicLinkDomain(String dynamicLinkDomain) |
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 en tant que lien dynamique Firebase
(application iOS com.example.ios
ou Android com.example.android
). La
le lien profond contiendra la charge utile de l'URL de suivi
https://www.example.com/?email=user@example.com
Kotlin+KTX
val auth = Firebase.auth val user = auth.currentUser!! val url = "http://www.example.com/verify?uid=" + user.uid val actionCodeSettings = ActionCodeSettings.newBuilder() .setUrl(url) .setIOSBundleId("com.example.ios") // The default for this is populated with the current android package name. .setAndroidPackageName("com.example.android", false, null) .build() user.sendEmailVerification(actionCodeSettings) .addOnCompleteListener { task -> if (task.isSuccessful) { Log.d(TAG, "Email sent.") } }
Java
FirebaseAuth auth = FirebaseAuth.getInstance(); FirebaseUser user = auth.getCurrentUser(); String url = "http://www.example.com/verify?uid=" + user.getUid(); ActionCodeSettings actionCodeSettings = ActionCodeSettings.newBuilder() .setUrl(url) .setIOSBundleId("com.example.ios") // The default for this is populated with the current android package name. .setAndroidPackageName("com.example.android", false, null) .build(); user.sendEmailVerification(actionCodeSettings) .addOnCompleteListener(new OnCompleteListener<Void>() { @Override public void onComplete(@NonNull Task<Void> task) { if (task.isSuccessful()) { Log.d(TAG, "Email sent."); } } });
Configurer Firebase Dynamic Links
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.
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éé un Dynamic Links domaine, faites-le maintenant.
Si vous avez déjà créé un domaine Dynamic Links, prenez-en note. Dynamic Links de domaine ressemble généralement à l'exemple suivant:
example.page.link
Vous aurez besoin de cette valeur lorsque vous configurerez votre application Apple ou Android pour intercepte le lien entrant.
Configurer des applications Android:
- 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 certificats SHA-1 et SHA-256 de l'application certificat doit être fourni.
- Vous devrez également configurer le filtre d'intent pour le lien profond dans votre fichier AndroidManifest.xml.
- Pour en savoir plus, consultez Receiving Android Dynamic Links instructions (Recevoir des instructions sur les liens dynamiques Android).
Configurer des applications iOS:
- Si vous prévoyez de gérer ces liens depuis votre application iOS, Vous devez spécifier l'ID du bundle iOS dans la console Firebase paramètres du projet. De plus, l'ID App Store et l'ID de développeur Apple Vous devez également spécifier un ID d'équipe.
- Vous devrez également configurer le domaine de lien universel FDL en tant que domaine associé dans les fonctionnalités de votre application.
- Si vous prévoyez de distribuer votre application sur iOS 8 et versions antérieures, vous devez définir votre ID de bundle iOS comme schéma personnalisé pour les messages entrants URL.
- Pour en savoir plus à ce sujet, consultez Instructions pour recevoir des liens dynamiques iOS
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, appelez setHandleCodeInApp(false)
dans la
ActionCodeSettings.Builder
. Bien qu'aucun ID de bundle iOS ni nom de package Android ne soit requis, les fournir permettra à l'utilisateur
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 les 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 l'objet 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 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).
Gérer les actions par e-mail dans une application mobile
Vous pouvez indiquer si vous souhaitez gérer le lien du code d'action dans votre
l'application mobile, à condition qu'elle soit installée. Avec les applications Android,
vous avez également la possibilité de le spécifier via la valeur booléenne installIfNotAvailable
que l'application doit
doit être installé si l'appareil le prend en charge et si ce n'est pas déjà fait.
Si l'utilisateur clique sur le lien depuis un appareil qui n'accepte pas le
il s'ouvre à partir d'une page Web.
Pour ce faire, appelez setHandleCodeInApp(true)
dans l'objet ActionCodeSettings.Builder. Vous devrez également indiquer le nom du package Android ou l'ID du bundle iOS de l'application mobile.
L'URL Web de remplacement utilisée ici, lorsqu'aucune application mobile n'est disponible, 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 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
. Ce dernier correspond à l'URL
d'origine spécifié dans l'objet ActionCodeSettings
. Bien que vous puissiez
intercepter et gérer le lien entrant depuis votre application sans aucune
nous vous recommandons d'utiliser la bibliothèque cliente FDL pour analyser le lien profond
vous. Le code d'action peut être appliqué directement à partir d'une application mobile similaire
à la façon dont ils sont gérés via le flux Web décrit dans
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).