Stan zaliczenia w działaniach e-maili

Podczas wysyłania e-maili z działaniami dotyczącymi resetowania hasła lub weryfikacji adresu e-mail użytkownika możesz przekazać stan za pomocą adresu URL kontynuacji. Dzięki temu użytkownik może wrócić do aplikacji po wykonaniu działania. Możesz też określić, czy link do działania w e-mailu ma być obsługiwany bezpośrednio w aplikacji mobilnej, gdy jest ona zainstalowana, zamiast strony internetowej.

Może to być bardzo przydatne w tych typowych sytuacjach:

  • Użytkownik, który nie jest obecnie zalogowany, może próbować uzyskać dostęp do treści, które wymagają zalogowania. Użytkownik może jednak zapomnieć hasło i w ten sposób uruchomić proces resetowania hasła. Użytkownik oczekuje, że po zakończeniu procesu wróci do sekcji aplikacji, do której próbował uzyskać dostęp.

  • Aplikacja może oferować dostęp tylko zweryfikowanym kontom. Na przykład w przypadku newslettera użytkownik może być zobowiązany do potwierdzenia adresu e-mail przed subskrypcją. Użytkownik przechodzi proces weryfikacji e-maila i musi wrócić do aplikacji, aby dokończyć subskrypcję.

  • W innych przypadkach użytkownik może rozpocząć proces na urządzeniu mobilnym i oczekiwać, że po weryfikacji wróci do aplikacji mobilnej, a nie do przeglądarki.

Możliwość przekazywania stanu za pomocą adresu URL kontynuacji to potężna funkcja, którą zapewnia Firebase Auth i która może znacznie poprawić wrażenia użytkownika.

Przekazywanie stanu adresu URL dalszego działania w działaniach e-mail

Aby bezpiecznie przekazywać adres URL kontynuacji, musisz dodać domenę tego adresu jako autoryzowaną domenę w konsoli Firebase. Aby to zrobić, w sekcji Uwierzytelnianie dodaj tę domenę do listy Autoryzowane domeny na karcie Metoda logowania, jeśli nie ma jej tam jeszcze.

Podczas wysyłania e-maila do zresetowania hasła lub e-maila weryfikacyjnego należy podać instancję firebase.auth.ActionCodeSettings. Ten interfejs przyjmuje te parametry:

Parametr Typ Opis
url ciąg znaków

Ustawia link (adres URL stanu lub kontynuacji), który ma różne znaczenia w zależności od kontekstu:

  • Gdy link jest obsługiwany w widżetach działań w przeglądarce, jest to precyzyjny link w parametrze zapytania continueUrl.
  • Jeśli link jest obsługiwany bezpośrednio w aplikacji, jest to parametr zapytania continueUrl w precyzyjnym linku Hosting.
iOS ({bundleId: string}|undefined) Ustawia identyfikator pakietu iOS, aby pomóc Firebase Authentication określić, czy ma utworzyć link tylko do wersji internetowej czy do wersji mobilnej, który będzie otwierany na urządzeniu Apple.
android ({packageName: string, installApp:boolean|undefined, minimumVersion: string|undefined}|undefined) Ustawia nazwę pakietu Androida, aby pomóc aplikacji Firebase Authentication określić, czy ma utworzyć link tylko do wersji internetowej czy do wersji mobilnej, który będzie otwierany na urządzeniu z Androidem.
handleCodeInApp (wartość logiczna|nieokreślona) Określ, czy link do działania w e-mailu ma się najpierw otworzyć w aplikacji mobilnej, czy w przeglądarce. Wartość domyślna to fałsz. Jeśli ta opcja ma wartość Prawda, link do kodu działania będzie wysyłany jako uniwersalny link lub link aplikacji na Androida i będzie otwierany przez aplikację, jeśli jest zainstalowana. W przypadku fałszywego wyniku kod zostanie wysłany najpierw do widżetu internetowego, a potem przekieruje do aplikacji, jeśli jest zainstalowana.
linkDomain (string|undefined) Jeśli w przypadku projektu zdefiniowano niestandardowe Hostingdomeny linków, określ, której z nich chcesz używać, gdy link ma być otwierany przez określoną aplikację mobilną. W przeciwnym razie domyślnie zostanie wybrana domena domyślna (np. PROJECT_ID.firebaseapp.com).
dynamicLinkDomain (string|undefined) Rola wycofana. Nie podawaj tego parametru.

Ten przykład pokazuje, jak wysłać link weryfikacji e-mail, który najpierw otworzy się w aplikacji mobilnej za pomocą niestandardowej domeny Hostingcustom-domain.com. Precyzyjny link będzie zawierać treść adresu URL do kontynuowania. 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 Authentication używa Firebase Hosting podczas wysyłania linku, który ma być otwarty w aplikacji mobilnej. Aby korzystać z tej funkcji, musisz skonfigurować linki hostingowe w konsoli Firebase.

  1. Konfigurowanie aplikacji na Androida:

    1. Jeśli planujesz obsługiwać te linki z aplikacji na Androida, musisz podać nazwę pakietu aplikacji w ustawieniach projektu w konsoli Firebase. Dodatkowo należy podać odciski cyfrowe SHA-1 i SHA-256 certyfikatu aplikacji.
    2. Musisz też skonfigurować filtr intencji dla precyzyjnego linku w pliku AndroidManifest.xml.
    3. Więcej informacji znajdziesz w artykule Otrzymywanie linków do hostowania Androida.
  2. Konfigurowanie aplikacji na iOS:

    1. Jeśli planujesz obsługiwać te linki z aplikacji na iOS, musisz skonfigurować domenę linku Hosting jako powiązaną domenę w możliwościach aplikacji.
    2. Więcej informacji znajdziesz w artykule Instrukcje otrzymywania linków do hostowania na iOS.

Obsługa działań związanych z e-mailami w aplikacji internetowej

Możesz określić, czy chcesz najpierw obsłużyć link z kodem działania z aplikacji internetowej, a potem przekierować użytkownika na inną stronę internetową lub aplikację mobilną (o ile jest ona dostępna) po pomyślnym zakończeniu działania. Aby to zrobić, ustaw wartość handleCodeInApp na false w obiekcie firebase.auth.ActionCodeSettings. Identyfikator pakietu na iOS lub nazwa pakietu na Androida nie są wymagane, ale ich podanie pozwoli użytkownikowi wrócić do określonej aplikacji po wykonaniu kodu działania e-maila.

Adres URL witryny użyty tutaj to adres skonfigurowany w sekcji Szablony działań e-mail. Domyślny jest udostępniany we wszystkich projektach. Więcej informacji o dostosowywaniu elementu przetwarzającego działanie e-maila znajdziesz w artykule [GA4] Dostosowywanie elementów przetwarzających działanie e-maila.

W tym przypadku link w parametrze zapytania continueUrl będzie linkiem do hostingu, którego ładunek to URL określony w obiekcie ActionCodeSettings.

Podczas obsługi działań związanych z e-mailem, takich jak weryfikacja adresu e-mail, kod działania z parametru zapytania oobCode musi zostać przeanalizowany z precyzyjnego linku, a następnie zastosowany za pomocą parametru applyActionCode, aby zmiana mogła zacząć obowiązywać, czyli aby adres e-mail został zweryfikowany.

Obsługa działań związanych z e-mailami w aplikacji mobilnej

Możesz określić, czy najpierw chcesz obsłużyć link do kodu działania w aplikacji mobilnej (o ile jest zainstalowana). Jeśli link zostanie kliknięty na urządzeniu, które nie obsługuje aplikacji mobilnej, zostanie otwarty w przeglądarce. Aby to zrobić, ustaw wartość handleCodeInApp na true w obiekcie firebase.auth.ActionCodeSettings. Musisz też podać nazwę pakietu na Androida lub identyfikator pakietu na iOS.

Gdy nie jest dostępna aplikacja mobilna, używany jest tutaj adres URL witryny zapasowej skonfigurowany w sekcji Szablony działań e-mail. Domyślny jest udostępniany we wszystkich projektach. Więcej informacji o dostosowywaniu elementu przetwarzającego działanie e-maila znajdziesz w artykule [GA4] Dostosowywanie elementów przetwarzających działanie e-maila.

W takim przypadku link do aplikacji mobilnej wysłany do użytkownika będzie linkiem Hosting, którego ładunek to adres URL kodu działania skonfigurowany w Konsoli z parametrami zapytania oobCode, mode, apiKeycontinueUrl. Druga wartość to oryginalna wartość URL określona w obiekcie ActionCodeSettings. Kod działania można zastosować bezpośrednio w aplikacji mobilnej w sposób podobny do obsługi kodu w przepływie internetowym opisanym w sekcji dostosowywanie elementów obsługujących e-maile.

Podczas obsługi działań związanych z e-mailem, takich jak weryfikacja adresu e-mail, kod działania z parametru zapytania oobCode musi zostać przeanalizowany z precyzyjnego linku, a następnie zastosowany za pomocą applyActionCode, aby zmiana mogła zacząć obowiązywać, czyli aby adres e-mail został zweryfikowany.