Sie können den Status über eine URL zur Weiterleitung ü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 Aktionslink für die E-Mail-Aktion direkt über eine mobile App verarbeitet werden soll, wenn diese installiert ist, und nicht über eine Webseite.
Dies kann in den folgenden häufigen 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. Der Nutzer hat aber möglicherweise sein Passwort vergessen und löst daher den Vorgang zum Zurücksetzen des Passworts aus. Am Ende des Vorgangs erwartet der Nutzer, dass er zu dem Bereich der App zurückkehrt, auf den er zugreifen wollte.
Eine Anwendung bietet möglicherweise nur Zugriff auf bestätigte Konten. Bei einer Newsletter-App muss der Nutzer beispielsweise seine E-Mail-Adresse bestätigen, bevor er sich anmelden kann. Der Nutzer durchläuft den Vorgang zur E-Mail-Bestätigung und erwartet, dass er zur App zurückkehrt, um die Anmeldung abzuschließen.
Wenn ein Nutzer in einer Apple-App einen Vorgang zum Zurücksetzen des Passworts oder zur E-Mail-Bestätigung startet, erwartet er im Allgemeinen, dass er den Vorgang in der App abschließen kann. Die Möglichkeit, den Status über eine Weiterleitungs-URL zu übergeben, macht dies möglich.
Die Möglichkeit, den Status über eine Weiterleitungs-URL zu übergeben, ist eine leistungsstarke Funktion von Firebase Authentication, die die Nutzerfreundlichkeit erheblich verbessern kann.
Status einer URL zur Weiterleitung in E-Mail-Aktionen übergeben
Damit Sie eine URL zur Weiterleitung sicher übergeben können, müssen Sie die Domain für die URL als autorisierte Domain hinzufügen:
Rufen Sie in der Firebase Konsole den Sicherheit > Authentifizierung > Einstellungen Tab auf.
Klicken Sie im Bereich Autorisierte Domains auf Domain hinzufügen und fügen Sie die URL hinzu.
Beim Senden einer E-Mail zum Zurücksetzen des Passworts oder einer Bestätigungs-E-Mail muss eine FIRActionCodeSettings-Instanz angegeben werden. Diese Schnittstelle verwendet die folgenden Parameter:
Swift
| Parameter | Typ | Beschreibung |
|---|---|---|
URL |
String | Legt den Link (Status-/URL zur Weiterleitung) fest, der in verschiedenen Kontexten unterschiedliche Bedeutungen hat:
|
iOSBundleID |
String | Legt die iOS-Bundle-ID fest, damit Firebase Authentication ermitteln kann, ob es einen reinen Weblink oder einen mobilen Link erstellen soll, der auf einem Apple-Gerät geöffnet wird. |
androidPackageName |
String | 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 |
Bool | Gibt an, ob der Aktionslink für die E-Mail zuerst in einer mobilen App oder über einen Weblink geöffnet wird. Der Standardwert ist „false“. Wenn der Wert auf „true“ gesetzt ist, wird der Link für den Aktionscode als universeller Link oder Android-App-Link gesendet und von der App geöffnet falls sie installiert ist. Wenn der Wert „false“ ist, wird der Code zuerst an das Web-Widget gesendet und dann bei Fortsetzung zur App weitergeleitet, falls sie installiert ist. |
linkDomain |
String | Wenn benutzerdefinierte Hosting-Link-Domains 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 | Verworfen. Geben Sie diesen Parameter nicht an. |
Objective-C
| Parameter | Typ | Beschreibung |
|---|---|---|
URL |
NSString | Legt den Link (Status-/URL zur Weiterleitung) fest, der in verschiedenen Kontexten unterschiedliche Bedeutungen hat:
|
iOSBundleID |
NSString | Legt die iOS-Bundle-ID fest, damit Firebase Authentication ermitteln kann, ob ein reiner Weblink oder ein mobiler Link erstellt werden soll, der auf einem Android- oder Apple-Gerät geöffnet wird. |
androidPackageName |
NSString | 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- oder Apple-Gerät geöffnet wird. |
handleCodeInApp |
BOOL | Gibt an, ob der Aktionslink für die E-Mail zuerst in einer mobilen App oder über einen Weblink geöffnet wird. Der Standardwert ist „false“. Wenn der Wert auf „true“ gesetzt ist, wird der Link für den Aktionscode als universeller Link oder Android-App-Link gesendet und von der App geöffnet falls sie installiert ist. Wenn der Wert „false“ ist, wird der Code zuerst an das Web-Widget gesendet und dann bei Fortsetzung zur App weitergeleitet, falls sie installiert ist. |
linkDomain |
NSString | Wenn benutzerdefinierte Hosting Link-Domains 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 |
NSString | Verworfen. Geben Sie diesen Parameter nicht an. |
Das folgende Beispiel zeigt, wie Sie einen E-Mail-Bestätigungslink senden, der zuerst in einer mobilen App geöffnet wird. Dabei wird die benutzerdefinierte Hosting Link-Domain custom-domain.com verwendet. Der Deeplink enthält die Nutzlast der URL zur Weiterleitung https://www.example.com/?email=user@example.com.
Swift
var actionCodeSettings = ActionCodeSettings.init() actionCodeSettings.canHandleInApp = true let user = Auth.auth().currentUser() actionCodeSettings.URL = String(format: "https://www.example.com/?email=%@", user.email) actionCodeSettings.iOSbundleID = Bundle.main.bundleIdentifier! actionCodeSettings.setAndroidPakageName("com.example.android") // Specify a custom Hosting link domain to use. The domain must be // configured in Firebase Hosting and owned by the project. actionCodeSettings.linkDomain = "custom-domain.com" user.sendEmailVerification(withActionCodeSettings:actionCodeSettings { error in if error { // Error occurred. Inspect error.code and handle error. return } // Email verification sent. })
Objective-C
FIRActionCodeSettings *actionCodeSettings = [[FIRActionCodeSettings alloc] init]; actionCodeSettings.handleCodeInApp = YES; FIRUser *user = [FIRAuth auth].currentUser; NSString *urlString = [NSString stringWithFormat:@"https://www.example.com/?email=%@", user.email]; actionCodeSettings.URL = [NSURL URLWithString:urlString]; actionCodeSettings.iOSBundleID = [NSBundle mainBundle].bundleIdentifier; // Specify a custom Hosting link domain to use. The domain must be // configured in Firebase Hosting and owned by the project. actionCodeSettings.linkDomain = @"custom-domain.com"; [actionCodeSettings setAndroidPackageName:@"com.example.android"]; [user sendEmailVerificationWithActionCodeSettings:actionCodeSettings completion:^(NSError *_Nullable error) { if (error) { // Error occurred. Inspect error.code and handle error. return; } // Email verification sent. }];
Firebase Hosting-Links konfigurieren
Firebase Authentication verwendet Firebase Hosting, wenn ein Link gesendet wird, der in einer mobilen App geöffnet werden soll. Damit Sie diese Funktion nutzen können, müssen Hosting Links in der Firebase Konsole konfiguriert werden.
Apple-Anwendungen konfigurieren:
- Wenn Sie diese Links in Ihrer Anwendung verarbeiten möchten, müssen Sie die Hosting Link-Domain als zugeordnete Domain in Ihren Anwendungsfunktionen konfigurieren.
- Weitere Informationen finden Sie in der Anleitung zum Empfangen von iOS-Hosting-Links.
Android-Anwendungen konfigurieren:
- Wenn Sie diese Links in Ihrer Android-App verarbeiten möchten, muss der Paketname Ihrer App in den Firebase Konsole Projekteinstellungen angegeben werden. Außerdem müssen der SHA-1- und der SHA-256-Fingerabdruck des Anwendungszertifikats angegeben werden.
- Sie müssen auch den Intent-Filter für den Deeplink in der Datei
AndroidManifest.xmlkonfigurieren. - Weitere Informationen finden Sie in der Anleitung zum Empfangen von Android-Hosting-Links.
E-Mail-Aktionen in einer Webanwendung verarbeiten
Sie können festlegen, ob der Link für den Aktionscode zuerst in einer Webanwendung verarbeitet und nach erfolgreichem Abschluss zu einer anderen Webseite oder mobilen Anwendung weitergeleitet werden soll, sofern die mobile Anwendung verfügbar ist.
Dazu setzen Sie handleCodeInApp auf false im
FIRActionCodeSettings (Obj-C) oder ActionCodeSettings (Swift) Objekt. Eine Bundle-ID oder ein Android-Paketname sind nicht erforderlich. Wenn Sie sie jedoch angeben, kann der Nutzer nach Abschluss des E-Mail-Aktionscodes zur angegebenen App weitergeleitet werden.
Die hier verwendete Web-URL ist die, die im Abschnitt zu den E-Mail-Aktionsvorlagen konfiguriert wurde. Für alle Projekte wird eine Standard-URL bereitgestellt. Weitere Informationen zum Anpassen des E-Mail-Aktions-Handlers finden Sie unter E-Mail-Handler anpassen.
In diesem Fall ist der Link im continueURL Abfrageparameter ein Hosting Link, dessen Nutzlast die in der ActionCodeSettings Instanz angegebene URL ist.
Bei der Verarbeitung von E-Mail-Aktionen wie der E-Mail-Bestätigung muss der Aktionscode aus dem Abfrageparameter oobCode 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 App verarbeiten
Sie können festlegen, ob der Link für den Aktionscode zuerst in Ihrer mobilen App verarbeitet werden soll, sofern sie installiert ist. Wenn der Link auf einem Gerät angeklickt wird, das die mobile App nicht unterstützt, wird er stattdessen auf einer Webseite geöffnet. Dazu setzen Sie handleCodeInApp auf true im
FIRActionCodeSettings (Obj-C) oder ActionCodeSettings (Swift) Objekt. Außerdem muss der Android-Paketname oder die Bundle-ID der mobilen App angegeben werden. Die hier verwendete Fallback-Web-URL, wenn keine mobile App verfügbar ist, ist die, die im Abschnitt zu den E-Mail-Aktionsvorlagen konfiguriert wurde. Für alle Projekte wird eine Standard-URL 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 für die mobile App ein Hosting Link
dessen Nutzlast die in der Konsole konfigurierte URL für den Aktionscode mit den Abfrage
parametern oobCode, mode, apiKey und continueUrl ist. Letztere ist die
ursprüngliche URL die im FIRActionCodeSettings (Obj-C) oder
ActionCodeSettings (Swift) Objekt angegeben wurde. Der Aktionscode kann direkt
über eine mobile App angewendet werden, ähnlich wie bei der Verarbeitung über den Webvorgang,
die 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 Abfrageparameter oobCode aus dem Deeplink geparst und dann über applyActionCode angewendet werden, damit die Änderung wirksam wird, d.h. die E-Mail-Adresse bestätigt wird.