Sie können den Status über eine „continue“-URL übergeben, wenn Sie E-Mail-Aktionen zum Zurücksetzen von Passwörtern oder zum Bestätigen der E-Mail-Adresse eines Nutzers senden. So kann der Nutzer nach Abschluss der Aktion zur App zurückkehren. Außerdem können Sie festlegen, ob der E‑Mail-Aktionslink direkt über eine mobile App verarbeitet werden soll, wenn diese installiert ist, anstatt über eine Webseite.
Dies kann in den folgenden gängigen Szenarien äußerst nützlich sein:
Ein Nutzer, der derzeit nicht angemeldet ist, versucht möglicherweise, auf Inhalte zuzugreifen, für die eine Anmeldung erforderlich ist. Es kann jedoch sein, dass der Nutzer sein Passwort vergessen hat und daher den Ablauf zum Zurücksetzen des Passworts auslöst. Am Ende des Ablaufs erwartet der Nutzer, dass er zu dem Bereich der App zurückkehrt, auf den er zugreifen wollte.
Eine Anwendung darf nur Zugriff auf bestätigte Konten bieten. Bei einem Newsletter muss der Nutzer beispielsweise seine E-Mail-Adresse bestätigen, bevor er ihn abonnieren kann. Der Nutzer durchläuft den E‑Mail-Bestätigungsvorgang und erwartet, dass er zur App zurückkehren kann, um das Abo abzuschließen.
In anderen Fällen hat der Nutzer den Ablauf möglicherweise auf seinem Mobilgerät gestartet und erwartet, nach der Bestätigung zur mobilen App zurückzukehren, anstatt zum Browser.
Die Möglichkeit, den Status über eine „continue“-URL zu übergeben, ist eine leistungsstarke Funktion, die Firebase Auth bietet und die die Nutzerfreundlichkeit erheblich verbessern kann.
Status einer Continue-URL in E-Mail-Aktionen übergeben
Damit eine Continue-URL sicher übergeben werden kann, muss die Domain für die URL in der Firebase-Konsole als autorisierte Domain hinzugefügt werden. Dies erfolgt im Bereich Authentifizierung, indem Sie diese Domain der Liste der Autorisierten Domains auf dem Tab Anmeldemethode hinzufügen, sofern sie dort noch nicht aufgeführt ist.
Beim Senden einer E-Mail zum Zurücksetzen des Passworts oder einer Bestätigungs-E-Mail muss eine firebase.auth.ActionCodeSettings
-Instanz angegeben werden. Diese Schnittstelle verwendet die folgenden Parameter:
Parameter | Typ | Beschreibung |
---|---|---|
url |
String | Legt den Link (Status-/Fortsetzungs-URL) fest, der in verschiedenen Kontexten unterschiedliche Bedeutungen hat:
|
iOS |
({bundleId: string}|undefined) | Legt die iOS-Paket-ID fest, damit Firebase Authentication ermitteln kann, ob ein reiner Weblink oder ein mobiler Link erstellt werden soll, der auf einem Apple-Gerät geöffnet wird. |
android |
({packageName: string, installApp:boolean|undefined, minimumVersion: string|undefined}|undefined) | Legt den Android-Paketnamen fest, damit Firebase Authentication ermitteln kann, ob ein reiner Weblink oder ein mobiler Link erstellt werden soll, der auf einem Android-Gerät geöffnet wird. |
handleCodeInApp |
(boolean|undefined) | Gibt an, ob der E-Mail-Aktionslink zuerst in einer mobilen App oder einem Weblink geöffnet wird. Der Standardwert ist "false". 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, sofern sie installiert ist. Im Fall „false“ wird der Code zuerst an das Web-Widget gesendet und dann wird bei „continue“ zur App weitergeleitet, sofern sie installiert ist. |
linkDomain |
(String|undefined) | Wenn benutzerdefinierte Hosting-Linkdomains für ein Projekt definiert sind, geben Sie an, welche verwendet werden soll, wenn der Link von einer bestimmten mobilen App geöffnet werden soll. Andernfalls wird automatisch die Standarddomain ausgewählt (z. B. PROJECT_ID.firebaseapp.com |
dynamicLinkDomain |
(String|undefined) | Verworfen. Geben Sie diesen Parameter nicht an. |
Das folgende Beispiel veranschaulicht, wie Sie einen Link zur E-Mail-Bestätigung senden, der zuerst in einer mobilen App mit der benutzerdefinierten Hosting-Domain custom-domain.com
geöffnet wird. Der Deeplink enthält die Nutzlast der Continue-URL
https://www.example.com/?email=user@example.com
.
const actionCodeSettings = {
url: 'https://www.example.com/?email=' + firebase.auth().currentUser.email,
iOS: {
bundleId: 'com.example.ios'
},
android: {
packageName: 'com.example.android',
},
handleCodeInApp: true,
// Specify a custom Hosting link domain to use. The domain must be
// configured in Firebase Hosting and owned by the project.
linkDomain: "custom-domain.com"
};
firebase.auth().currentUser.sendEmailVerification(actionCodeSettings)
.then(function() {
// Verification email sent.
})
.catch(function(error) {
// Error occurred. Inspect error.code.
});
Firebase Hosting-Links konfigurieren
Firebase Authentication verwendet Firebase Hosting, wenn ein Link gesendet wird, der in einer mobilen Anwendung geöffnet werden soll. Damit Sie diese Funktion nutzen können, müssen Hosting-Links in der Firebase-Konsole konfiguriert werden.
Android-Apps konfigurieren:
- Wenn Sie diese Links in Ihrer Android-Anwendung verarbeiten möchten, muss der Paketname Ihrer App in den Firebase-Konsoleneinstellungen des Projekts angegeben werden. Außerdem müssen der SHA‑1- und der SHA‑256-Fingerabdruck des Anwendungszertifikats angegeben werden.
- Außerdem müssen Sie den Intent-Filter für den Deeplink in Ihrer
AndroidManifest.xml
-Datei konfigurieren. - Weitere Informationen finden Sie unter Anleitung zum Empfangen von Android-Hosting-Links.
iOS-Anwendungen konfigurieren:
- Wenn Sie diese Links in Ihrer iOS-Anwendung verarbeiten möchten, müssen Sie die Hosting-Linkdomain als zugeordnete Domain in den Funktionen Ihrer Anwendung konfigurieren.
- Weitere Informationen
E‑Mail-Aktionen in einer Webanwendung verarbeiten
Sie können festlegen, ob der Aktionscodelink zuerst von einer Webanwendung verarbeitet und dann nach erfolgreichem Abschluss zu einer anderen Webseite oder mobilen Anwendung weitergeleitet werden soll, sofern die mobile Anwendung verfügbar ist.
Dazu wird handleCodeInApp
im firebase.auth.ActionCodeSettings
-Objekt auf false
gesetzt. Eine iOS-Paket-ID oder ein Android-Paketname sind zwar nicht erforderlich, aber wenn Sie sie angeben, kann der Nutzer nach Abschluss des E-Mail-Aktionscodes zur angegebenen App zurückgeleitet werden.
Die hier verwendete Web-URL ist die, die im Abschnitt „E-Mail-Aktionsvorlagen“ konfiguriert ist. Für alle Projekte wird standardmäßig eine bereitgestellt. Weitere Informationen zum Anpassen des E‑Mail-Aktions-Handlers finden Sie unter E‑Mail-Handler anpassen.
In diesem Fall ist der Link im Abfrageparameter continueUrl
ein Hosting-Link, dessen Nutzlast das URL
ist, das im ActionCodeSettings
-Objekt angegeben ist.
Bei der Verarbeitung von E-Mail-Aktionen wie der E-Mail-Bestätigung muss der Aktionscode aus dem oobCode
-Abfrageparameter aus dem Deeplink geparst und dann über applyActionCode
angewendet werden, damit die Änderung wirksam wird, d.h. die E-Mail-Adresse bestätigt wird.
E‑Mail-Aktionen in einer mobilen Anwendung verarbeiten
Sie können festlegen, ob der Aktionscodelink zuerst in Ihrer mobilen App verarbeitet werden soll, sofern sie installiert ist. Wenn auf den Link auf einem Gerät geklickt wird, das die mobile App nicht unterstützt, wird er stattdessen auf einer Webseite geöffnet. Dazu wird handleCodeInApp
im firebase.auth.ActionCodeSettings
-Objekt auf true
gesetzt. Der Android-Paketname oder die iOS-Bundle-ID der mobilen App muss ebenfalls angegeben werden.
Die hier verwendete Fallback-Web-URL, wenn keine mobile App verfügbar ist, ist die, die im Abschnitt „E-Mail-Aktionsvorlagen“ konfiguriert ist. Für alle Projekte wird ein Standard-Servicekonto bereitgestellt. Weitere Informationen zum Anpassen des E‑Mail-Aktions-Handlers finden Sie unter E‑Mail-Handler anpassen.
In diesem Fall ist der an den Nutzer gesendete Link zur mobilen App ein Hosting-Link, dessen Nutzlast die in der Console konfigurierte Aktionscode-URL mit den Abfrageparametern oobCode
, mode
, apiKey
und continueUrl
ist. Letzteres ist das ursprüngliche URL
, das im ActionCodeSettings
-Objekt angegeben ist. Der Aktionscode kann direkt über eine mobile App angewendet werden, ähnlich wie im Webflow, der im Abschnitt E-Mail-Handler anpassen beschrieben wird.
Bei der Verarbeitung von E-Mail-Aktionen wie der E-Mail-Bestätigung muss der Aktionscode aus dem oobCode
-Abfrageparameter aus dem Deeplink geparst und dann über applyActionCode
angewendet werden, damit die Änderung wirksam wird, d.h. die E-Mail-Adresse bestätigt wird.