Übergabestatus in E-Mail-Aktionen

Sie können den Status über eine Fortsetzungs-URL übergeben, wenn Sie E-Mail-Aktionen zum Zurücksetzen von Kennwörtern senden oder die E-Mail-Adresse eines Benutzers überprüfen. Dies bietet dem Benutzer die Möglichkeit, nach Abschluss der Aktion zur App zurückzukehren. Außerdem können Sie angeben, ob der E-Mail-Aktionslink direkt von einer mobilen Anwendung verarbeitet werden soll, wenn diese statt von einer Webseite installiert wird.

Dies kann in den folgenden häufigen Szenarien äußerst nützlich sein:

  • Ein Benutzer, der derzeit nicht angemeldet ist, versucht möglicherweise, auf Inhalte zuzugreifen, für die eine Anmeldung des Benutzers erforderlich ist. Der Benutzer hat jedoch möglicherweise sein Kennwort vergessen und löst daher den Flow zum Zurücksetzen des Kennworts aus. Am Ende des Ablaufs erwartet der Benutzer, dass er zu dem Abschnitt der App zurückkehrt, auf den er zugreifen wollte.

  • Eine Anwendung darf nur Zugriff auf verifizierte Konten bieten. Bei einem Newsletter kann es beispielsweise erforderlich sein, dass der Benutzer seine E-Mail-Adresse bestätigt, bevor er sich anmeldet. Der Benutzer würde den E-Mail-Verifizierungsablauf durchlaufen und erwarten, zur App zurückzukehren, um sein Abonnement abzuschließen.

  • In anderen Fällen hat der Benutzer den Flow möglicherweise von seinem mobilen Gerät aus gestartet und erwartet, dass er nach der Überprüfung zu seiner mobilen App statt zum Browser zurückkehrt.

Die Fähigkeit, den Status über eine fortfahrende URL zu übergeben, ist eine leistungsstarke Funktion, die Firebase Auth bietet und die die Benutzererfahrung erheblich verbessern kann.

Zustands-/Fortsetzungs-URL in E-Mail-Aktionen übergeben

Um eine fortfahrende URL sicher zu übergeben, muss die Domain für die URL als autorisierte Domain in der Firebase-Konsole hinzugefügt werden . Dies erfolgt im Abschnitt Authentifizierung , indem diese Domäne zur Liste der autorisierten Domänen auf der Registerkarte Anmeldemethode hinzugefügt wird, falls sie noch nicht dort ist.

Eine firebase.auth.ActionCodeSettings Instanz muss bereitgestellt werden, wenn eine E-Mail zum Zurücksetzen des Passworts oder eine Bestätigungs-E-Mail gesendet wird. Diese Schnittstelle übernimmt die folgenden Parameter:

Parameter Typ Beschreibung
url Schnur

Setzt den Link (State/Continue URL), der in verschiedenen Kontexten unterschiedliche Bedeutungen hat:

  • Wenn der Link in den Webaktions-Widgets verarbeitet wird, ist dies der Deep-Link im continueUrl -Abfrageparameter.
  • Wenn der Link direkt in der App verarbeitet wird, ist dies der continueUrl -Abfrageparameter im Deeplink des dynamischen Links.
iOS ({bundleId: string}|undefiniert) Legt die iOS-Paket-ID fest. Dadurch wird versucht, den Link in einer iOS-App zu öffnen, falls diese installiert ist. Die iOS-App muss in der Konsole registriert werden.
android ({packageName: string, installApp:boolean|undefiniert, minimumVersion: string|undefiniert}|undefiniert) Legt den Android-Paketnamen fest. Dadurch wird versucht, den Link in einer Android-App zu öffnen, falls diese installiert ist. Wenn installApp übergeben wird, gibt es an, ob die Android-App installiert werden soll, wenn das Gerät dies unterstützt und die App noch nicht installiert ist. Wenn dieses Feld ohne packageName bereitgestellt wird, wird ein Fehler ausgegeben, der erklärt, dass der packageName in Verbindung mit diesem Feld bereitgestellt werden muss. Wenn minimumVersion angegeben ist und eine ältere Version der App installiert ist, wird der Benutzer zum Play Store weitergeleitet, um die App zu aktualisieren. Die Android-App muss in der Konsole registriert werden.
handleCodeInApp (boolesch|undefiniert) Ob der E-Mail-Aktionslink zuerst in einer mobilen App oder einem Weblink geöffnet wird. Der Standardwert ist falsch. Wenn der Wert auf „true“ gesetzt ist, wird der Aktionscode-Link als universeller Link oder Android-App-Link gesendet und von der App geöffnet, falls installiert. Im falschen Fall wird der Code zuerst an das Web-Widget gesendet und dann bei Continue zur App weitergeleitet, falls installiert.
dynamicLinkDomain (Zeichenfolge|undefiniert) Legt die Domäne (oder Subdomäne) des dynamischen Links fest, die für den aktuellen Link verwendet werden soll, wenn er mit Firebase Dynamic Links geöffnet werden soll. Da mehrere dynamische Linkdomänen pro Projekt konfiguriert werden können, bietet dieses Feld die Möglichkeit, explizit eine auszuwählen. Wenn keine angegeben wird, wird standardmäßig die erste Domäne verwendet.

Das folgende Beispiel zeigt, wie Sie einen E-Mail-Bestätigungslink senden, der in einer mobilen App zuerst als dynamischer Firebase-Link geöffnet wird, indem Sie die benutzerdefinierte Domäne für dynamische Links example.page.link verwenden (iOS-App com.example.ios oder Android-App com.example.android , wo die App installiert wird, falls sie noch nicht installiert ist und die Mindestversion 12 ist). Der Deep-Link enthält die Nutzlast der Fortsetzungs-URL 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 verwendet Firebase Dynamic Links , wenn ein Link gesendet wird, der in einer mobilen Anwendung geöffnet werden soll. Um diese Funktion nutzen zu können, müssen dynamische Links in der Firebase-Konsole konfiguriert werden.

  1. Dynamische Firebase-Links aktivieren:

    1. Öffnen Sie in der Firebase-Konsole den Abschnitt Dynamische Links .
    2. Wenn Sie die Bedingungen für dynamische Links noch nicht akzeptiert und eine Domäne für dynamische Links erstellt haben, tun Sie dies jetzt.

      Wenn Sie bereits eine Domäne mit dynamischen Links erstellt haben, notieren Sie sich diese. Eine Domäne mit dynamischen Links sieht normalerweise wie im folgenden Beispiel aus:

      example.page.link

      Sie benötigen diesen Wert, wenn Sie Ihre Apple- oder Android-App so konfigurieren, dass sie den eingehenden Link abfängt.

  2. Konfigurieren von Android-Anwendungen:

    1. Wenn Sie diese Links von Ihrer Android-Anwendung aus verarbeiten möchten, muss der Android-Paketname in den Projekteinstellungen der Firebase Console angegeben werden. Außerdem müssen SHA-1 und SHA-256 des Anwendungszertifikats angegeben werden.
    2. Außerdem müssen Sie den Intent-Filter für den Deep-Link in Ihrer AndroidManifest.xml -Datei konfigurieren.
    3. Weitere Informationen hierzu finden Sie in der Anleitung zum Empfangen dynamischer Android-Links .
  3. Konfigurieren von iOS-Anwendungen:

    1. Wenn Sie diese Links von Ihrer iOS-Anwendung aus verarbeiten möchten, muss die iOS-Bundle-ID in den Projekteinstellungen der Firebase Console angegeben werden. Außerdem müssen die App Store ID und die Apple Developer Team ID angegeben werden.
    2. Außerdem müssen Sie die universelle FDL-Link-Domäne als zugeordnete Domäne in Ihren Anwendungsfunktionen konfigurieren.
    3. Wenn Sie planen, Ihre Anwendung an die iOS-Versionen 8 und darunter zu verteilen, müssen Sie Ihre iOS-Bundle-ID als benutzerdefiniertes Schema für eingehende URLs festlegen.
    4. Weitere Informationen hierzu finden Sie in der Anleitung zum Empfangen dynamischer iOS-Links .

Umgang mit E-Mail-Aktionen in einer Webanwendung

Sie können angeben, ob Sie den Aktionscode-Link von einer Webanwendung zuerst behandeln und dann nach erfolgreichem Abschluss auf eine andere Webseite oder mobile Anwendung umleiten möchten, sofern die mobile Anwendung verfügbar ist. Setzen Sie dazu firebase.auth.ActionCodeSettings im Objekt handleCodeInApp auf false . Obwohl eine iOS-Bundle-ID oder ein Android-Paketname nicht erforderlich sind, ermöglicht die Angabe dieser dem Benutzer, nach Abschluss des E-Mail-Aktionscodes zurück zur angegebenen App umzuleiten.

Die hier verwendete Web-URL ist die im Abschnitt E-Mail-Aktionsvorlagen konfigurierte. Für alle Projekte wird ein Standard bereitgestellt. Weitere Informationen zum Anpassen des E-Mail-Aktionshandlers finden Sie unter E-Mail-Handler anpassen.

In diesem Fall ist der Link innerhalb des continueUrl -Abfrageparameters ein FDL-Link, dessen Nutzlast die im ActionCodeSettings -Objekt angegebene URL ist. Während Sie den eingehenden Link von Ihrer App ohne zusätzliche Abhängigkeit abfangen und verarbeiten können, empfehlen wir die Verwendung der FDL-Clientbibliothek, um den Deep-Link für Sie zu parsen.

Bei E-Mail-Aktionen wie E-Mail-Verifizierung muss der Aktionscode aus dem Abfrageparameter oobCode aus dem Deep-Link geparst und dann über applyActionCode angewendet werden, damit die Änderung wirksam wird, dh die E-Mail verifiziert wird.

Handhabung von E-Mail-Aktionen in einer mobilen Anwendung

Sie können angeben, ob Sie den Aktionscode-Link zuerst in Ihrer mobilen Anwendung verarbeiten möchten, sofern diese installiert ist. Bei Android-Anwendungen haben Sie auch die Möglichkeit, über die android.installApp , dass die App installiert werden soll, wenn das Gerät dies unterstützt und sie nicht bereits installiert ist. Wenn der Link von einem Gerät aus angeklickt wird, das die mobile Anwendung nicht unterstützt, wird er stattdessen von einer Webseite geöffnet. Setzen Sie dazu firebase.auth.ActionCodeSettings im Objekt handleCodeInApp auf true . Der Android-Paketname oder die iOS-Bundle-ID der mobilen Anwendung muss ebenfalls angegeben werden.

Die hier verwendete Fallback-Web-URL, wenn keine mobile App verfügbar ist, ist die im Abschnitt E-Mail-Aktionsvorlagen konfigurierte. Für alle Projekte wird ein Standard bereitgestellt. Weitere Informationen zum Anpassen des E-Mail-Aktionshandlers finden Sie unter E-Mail-Handler anpassen.

In diesem Fall ist der an den Benutzer gesendete Link zur mobilen App ein FDL-Link, dessen Payload die in der Konsole konfigurierte Aktionscode-URL mit den Abfrageparametern oobCode , mode , apiKey und continueUrl ist. Letzteres ist die ursprüngliche URL , die im ActionCodeSettings Objekt angegeben ist. Während Sie den eingehenden Link von Ihrer App ohne zusätzliche Abhängigkeit abfangen und verarbeiten können, empfehlen wir die Verwendung der FDL-Clientbibliothek, um den Deep-Link für Sie zu parsen. Der Aktionscode kann direkt von einer mobilen Anwendung angewendet werden, ähnlich wie er vom Webflow aus gehandhabt wird, der im Abschnitt zum Anpassen von E-Mail-Handlern beschrieben wird.

Bei E-Mail-Aktionen wie E-Mail-Verifizierung muss der Aktionscode aus dem Abfrageparameter oobCode aus dem Deep-Link geparst und dann über applyActionCode angewendet werden, damit die Änderung wirksam wird, dh die E-Mail verifiziert wird.