Übergabestatus in E-Mail-Aktionen

Sie können den Status über eine Weiter-URL übergeben, wenn Sie E-Mail-Aktionen zum Zurücksetzen des Passworts senden oder die E-Mail-Adresse eines Benutzers überprüfen. Dies gibt dem Benutzer die Möglichkeit, nach Abschluss der Aktion zur App zurückzukehren. Darüber hinaus können Sie angeben, ob der E-Mail-Aktionslink direkt von einer mobilen Anwendung aus verarbeitet werden soll, wenn diese anstelle einer Webseite installiert wird.

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

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

  • Eine Anwendung darf nur Zugriff auf verifizierte Konten bieten. Beispielsweise kann es für einen Newsletter erforderlich sein, dass der Benutzer seine E-Mail-Adresse bestätigt, bevor er sich anmeldet. Der Benutzer durchläuft den E-Mail-Verifizierungsprozess und erwartet, zur App zurückzukehren, um sein Abonnement abzuschließen.

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

Die Möglichkeit, den Status über eine Fortsetzungs-URL zu übergeben, ist eine leistungsstarke Funktion von Firebase Auth, die das Benutzererlebnis erheblich verbessern kann.

Übergabe der Status-/Fortsetzungs-URL in E-Mail-Aktionen

Um eine Fortsetzungs-URL sicher zu übergeben, muss die Domäne für die URL als autorisierte Domäne 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, sofern sie dort noch nicht vorhanden ist.

Beim Senden einer E-Mail zum Zurücksetzen des Passworts oder einer Bestätigungs-E-Mail muss eine firebase.auth.ActionCodeSettings Instanz bereitgestellt werden. Diese Schnittstelle akzeptiert die folgenden Parameter:

Parameter Typ Beschreibung
url Zeichenfolge

Legt den Link (Status-/Weiter-URL) fest, 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 Deep Link des dynamischen Links.
iOS ({bundleId: string}|undefiniert) Legt die iOS-Bundle-ID fest. Dadurch wird versucht, den Link in einer iOS-App zu öffnen, sofern diese installiert ist. Die iOS-App muss in der Konsole registriert werden.
android ({Paketname: string, installApp:boolean|undefiniert, minimale Version: string|undefiniert}|undefiniert) Legt den Android-Paketnamen fest. Dadurch wird versucht, den Link in einer Android-App zu öffnen, sofern 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 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 (boolean|undefiniert) Ob der E-Mail-Aktionslink zuerst in einer mobilen App oder einem Weblink geöffnet wird. Der Standardwert ist falsch. Wenn dieser Wert auf „true“ gesetzt ist, wird der Aktionscode-Link als universeller Link oder Android-App-Link gesendet und von der App geöffnet, sofern diese installiert ist. Im falschen Fall wird der Code zuerst an das Web-Widget gesendet und dann beim Fortfahren zur App weitergeleitet, sofern diese installiert ist.
dynamicLinkDomain (Zeichenfolge|undefiniert) Legt die dynamische Linkdomäne (oder Subdomäne) fest, die für den aktuellen Link verwendet werden soll, wenn dieser mit Firebase Dynamic Links geöffnet werden soll. Da pro Projekt mehrere dynamische Linkdomänen konfiguriert werden können, bietet dieses Feld die Möglichkeit, explizit eine davon auszuwählen. Wenn keine angegeben wird, wird standardmäßig die erste Domäne verwendet.

Das folgende Beispiel zeigt, wie ein E-Mail-Bestätigungslink gesendet wird, der zunächst in einer mobilen App als dynamischer Firebase-Link geöffnet wird, und zwar mithilfe der benutzerdefinierten dynamischen Linkdomäne example.page.link (iOS-App com.example.ios oder Android-App com.example.android , wo die App installiert wird, wenn sie noch nicht installiert ist und die Mindestversion 12 ist). Der Deep-Link enthält die Weiter-URL-Nutzlast 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 beim Senden eines Links, 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. Aktivieren Sie dynamische Firebase-Links:

    1. Öffnen Sie in der Firebase-Konsole den Abschnitt „Dynamische Links“ .
    2. Wenn Sie die Dynamic Links-Bedingungen noch nicht akzeptiert und keine Dynamic Links-Domäne erstellt haben, tun Sie dies jetzt.

      Wenn Sie bereits eine Dynamic Links-Domäne erstellt haben, notieren Sie sich dies. Eine Dynamic Links-Domäne 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. Darüber hinaus müssen SHA-1 und SHA-256 des Anwendungszertifikats angegeben werden.
    2. Sie müssen außerdem den Absichtsfilter 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 über Ihre iOS-Anwendung verarbeiten möchten, muss die iOS-Bundle-ID in den Projekteinstellungen der Firebase Console angegeben werden. Darüber hinaus müssen auch die App Store ID und die Apple Developer Team ID angegeben werden.
    2. Sie müssen außerdem die FDL-Universal-Link-Domäne als zugeordnete Domäne in Ihren Anwendungsfunktionen konfigurieren.
    3. Wenn Sie planen, Ihre Anwendung an iOS-Versionen 8 und niedriger 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 Empfang dynamischer iOS-Links .

Verarbeiten von E-Mail-Aktionen in einer Webanwendung

Sie können angeben, ob Sie zuerst den Aktionscode-Link einer Webanwendung verarbeiten und dann nach erfolgreichem Abschluss zu einer anderen Webseite oder mobilen Anwendung weiterleiten möchten, sofern die mobile Anwendung verfügbar ist. Dies geschieht, indem handleCodeInApp im firebase.auth.ActionCodeSettings Objekt auf false gesetzt wird. Eine iOS-Bundle-ID oder ein Android-Paketname sind zwar nicht erforderlich, ihre Bereitstellung ermöglicht es dem Benutzer jedoch, nach Abschluss des E-Mail-Aktionscodes zur angegebenen App zurückzukehren.

Die hier verwendete Web-URL ist diejenige, die im Abschnitt „E-Mail-Aktionsvorlagen“ konfiguriert wurde. Für alle Projekte wird ein Standard bereitgestellt. Weitere Informationen zum Anpassen des E-Mail-Aktionshandlers finden Sie unter Anpassen von E-Mail-Handlern.

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 von Ihrer App eingehenden Link 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 analysieren.

Bei der Bearbeitung von E-Mail-Aktionen wie der 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, d. h. die E-Mail wird überprüft.

E-Mail-Aktionen in einer mobilen Anwendung verwalten

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 außerdem die Möglichkeit, über die android.installApp festzulegen, dass die App installiert werden soll, sofern 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 aus geöffnet. Dies geschieht, indem handleCodeInApp im firebase.auth.ActionCodeSettings -Objekt auf true gesetzt wird. Außerdem muss der Android-Paketname oder die iOS-Bundle-ID der mobilen Anwendung angegeben werden.

Wenn keine mobile App verfügbar ist, wird hier die Fallback-Web-URL verwendet, die im Abschnitt „E-Mail-Aktionsvorlagen“ konfiguriert wurde. Für alle Projekte wird ein Standard bereitgestellt. Weitere Informationen zum Anpassen des E-Mail-Aktionshandlers finden Sie unter Anpassen von E-Mail-Handlern.

In diesem Fall handelt es sich bei dem an den Benutzer gesendeten Link zur mobilen App um einen FDL-Link, dessen Nutzlast 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 von Ihrer App eingehenden Link 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 analysieren. Der Aktionscode kann direkt aus einer mobilen Anwendung angewendet werden, ähnlich wie er im Webflow gehandhabt wird, der im Abschnitt „Anpassen von E-Mail-Handlern“ beschrieben wird.

Bei der Bearbeitung von E-Mail-Aktionen wie der 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, d. h. die E-Mail wird überprüft.