Stan za pomocą adresu URL kontynuacji możesz przekazywać podczas wysyłania e-maili z działaniami związanymi z resetowaniem hasła lub weryfikacją adresu e-mail użytkownika. Dzięki temu użytkownik może wrócić do aplikacji po wykonaniu działania. Dodatkowo możesz określić, czy link do działania e-maila ma być obsługiwany bezpośrednio z poziomu aplikacji mobilnej, gdy jest ona zainstalowana, a nie na stronie 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ą od niego zalogowania. Użytkownik mógł jednak zapomnieć hasło i w związku z tym aktywować procedurę resetowania. Pod koniec procesu użytkownik oczekuje, że wróci do sekcji aplikacji, do której chce uzyskać dostęp.
Aplikacja może oferować dostęp tylko do zweryfikowanych kont. Na przykład newsletter może wymagać od użytkownika potwierdzenia adresu e-mail przed zasubskrybowaniem go. Użytkownik przechodzi proces weryfikacji e-mailowej i spodziewa się wrócić do aplikacji, aby dokończyć proces subskrypcji.
W innych przypadkach użytkownik mógł rozpocząć proces na urządzeniu mobilnym i oczekiwać, że powróci do aplikacji mobilnej zamiast do przeglądarki.
Uwierzytelnianie Firebase pozwala na przekazywanie stanu za pomocą adresu URL kontynuowania i może znacznie zwiększyć wygodę użytkowników.
Adres URL przekazywania stanu/kontynuowania w działaniach związanych z e-mailami
Aby bezpiecznie przekazywać adres URL typu „Dalej”, jego domenę należy dodać w konsoli Firebase jako autoryzowaną domenę. Możesz to zrobić w sekcji Uwierzytelnianie przez dodanie tej domeny do listy Autoryzowane domeny na karcie Metoda logowania, jeśli jeszcze się tam nie znajduje.
Podczas wysyłania e-maila do resetowania hasła lub e-maila weryfikacyjnego musisz podać instancję firebase.auth.ActionCodeSettings
. Interfejs ten przyjmuje następujące parametry:
Parametr | Typ | Opis |
---|---|---|
url |
string, | Ustawia link (adres URL stanu/kontynuacji), który ma różne znaczenia w różnych kontekstach:
|
iOS |
({bundleId: ciąg znaków}|niezdefiniowany) | Ustawia identyfikator pakietu na iOS. Spróbujemy otworzyć link w zainstalowanej aplikacji na iOS. Aplikacja na iOS musi być zarejestrowana w konsoli. |
android |
({packageName: string, installApp:boolean|undefined, minimumVersion: string|undefined}|undefined) | Określa nazwę pakietu na Androida. Spowoduje to próbę otwarcia linku w zainstalowanej aplikacji na Androida. Jeśli zasada installApp jest poprawna, określa, czy zainstalować aplikację na Androida, jeśli urządzenie obsługuje tę aplikację, a aplikacja nie jest jeszcze zainstalowana. Jeśli podasz to pole bez pola packageName , pojawi się błąd wyjaśniający, że w powiązaniu z tym polem należy podać packageName .
Jeśli określisz minimumVersion i zainstalowana jest starsza wersja aplikacji, użytkownik zostanie przekierowany do Sklepu Play, aby ją uaktualnić. Aplikacja na Androida musi być zarejestrowana w Konsoli. |
handleCodeInApp |
(wartość logiczna|niezdefiniowana) | Określa, czy link do działania w e-mailu zostanie najpierw otwarty w aplikacji mobilnej, czy jako link internetowy. Wartość domyślna to false (fałsz). Jeśli zasada ma wartość Prawda, link z kodem działania jest wysyłany jako link uniwersalny lub link aplikacji na Androida i jest otwierany przez aplikację, jeśli jest zainstalowana. W przeciwnym razie kod zostanie najpierw wysłany do widżetu internetowego, a potem Dalej następuje przekierowanie do aplikacji, jeśli jest zainstalowana. |
dynamicLinkDomain |
(ciąg|niezdefiniowany) | Konfiguruje domenę (lub subdomenę) linku dynamicznego, która ma być używana w bieżącym połączeniu, jeśli ma ono być otwierane za pomocą Linków dynamicznych Firebase. W każdym projekcie można skonfigurować wiele domen linków dynamicznych, dlatego to pole umożliwia wybranie jednej z nich. Jeśli nie zostanie podana żadna nazwa, domyślnie zostanie użyta pierwsza domena. |
Poniższy przykład ilustruje, jak wysłać e-mailowy link weryfikacyjny, który najpierw otworzy się w aplikacji mobilnej jako link dynamiczny Firebase, korzystając z niestandardowej domeny linku dynamicznego example.page.link
(aplikacja na iOS com.example.ios
lub aplikacja na Androida com.example.android
, w której aplikacja zostanie zainstalowana, jeśli nie jest jeszcze zainstalowana, a minimalna wersja to 12
). Precyzyjny link będzie zawierał ładunek adresu URL typu „Dalej” 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.
});
Konfigurowanie Linków dynamicznych Firebase
Uwierzytelnianie Firebase używa Linków dynamicznych Firebase do wysyłania linku, który ma być otwierany w aplikacji mobilnej. Aby korzystać z tej funkcji, musisz skonfigurować Linki dynamiczne w konsoli Firebase.
Włącz Linki dynamiczne Firebase:
- W konsoli Firebase otwórz sekcję Połączenia dynamiczne.
-
Jeśli Warunki Linków dynamicznych nie zostały jeszcze zaakceptowane i masz utworzoną domenę Linków dynamicznych, zrób to teraz.
Jeśli masz już utworzoną domenę Linki dynamiczne, zanotuj ją. Domena linków dynamicznych zwykle wygląda tak jak w przykładzie poniżej:
example.page.link
Będzie ona potrzebna podczas konfigurowania aplikacji na Apple lub Androida w taki sposób, aby przechwytywała link przychodzący.
Konfigurowanie aplikacji na Androida:
- Jeśli zamierzasz obsługiwać te linki w aplikacji na Androida, musisz określić nazwę pakietu na Androida w ustawieniach projektu w konsoli Firebase. Dodatkowo musisz podać SHA-1 i SHA-256 certyfikatu aplikacji.
- Musisz też skonfigurować w pliku
AndroidManifest.xml
filtr intencji dla precyzyjnego linku. - Więcej informacji na ten temat znajdziesz w instrukcjach dotyczących odbierania linków dynamicznych w Androidzie.
Konfigurowanie aplikacji na iOS:
- Jeśli zamierzasz obsługiwać te linki w aplikacji na iOS, musisz określić identyfikator pakietu na iOS w ustawieniach projektu w konsoli Firebase. Musisz też podać identyfikator App Store i identyfikator zespołu Apple Developer Team.
- Konieczne będzie też skonfigurowanie domeny linku uniwersalnego FDL jako powiązanej domeny w funkcjach aplikacji.
- Jeśli planujesz dystrybuować swoją aplikację na iOS w wersji 8 i starszych, musisz ustawić identyfikator pakietu iOS jako schemat niestandardowy dla przychodzących adresów URL.
- Więcej informacji na ten temat znajdziesz w instrukcjach dotyczących odbierania linków dynamicznych na iOS.
Obsługa działań dotyczących poczty e-mail w aplikacji internetowej
Możesz określić, czy chcesz, aby link kodu działania był najpierw obsługiwany z aplikacji internetowej, a następnie po pomyślnym przekierowaniu na inną stronę internetową lub do aplikacji mobilnej (pod warunkiem, że aplikacja mobilna jest dostępna).
Aby to zrobić, ustaw wartość handleCodeInApp
na false
w obiekcie firebase.auth.ActionCodeSettings
. Chociaż identyfikator pakietu na iOS i nazwa pakietu na Androida nie są wymagane, po wypełnieniu kodu e-mail użytkownik będzie mógł przekierowywać użytkownika z powrotem do określonej aplikacji.
Użyty tutaj URL strony internetowej jest skonfigurowany w sekcji szablonów działań e-mail. Domyślna jest udostępniona dla wszystkich projektów. Więcej informacji o dostosowywaniu modułu obsługi działań dotyczących poczty e-mail znajdziesz w artykule na temat dostosowywania modułów obsługi poczty e-mail.
W tym przypadku link w parametrze zapytania continueUrl
będzie linkiem FDL, którego ładunkiem jest URL
określony w obiekcie ActionCodeSettings
. Możesz przechwytywać i obsługiwać linki przychodzące z aplikacji bez żadnych dodatkowych zależności, ale zalecamy przeanalizowanie precyzyjnego linku za pomocą biblioteki klienta FDL.
W przypadku działań związanych z pocztą e-mail, takich jak potwierdzanie 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 zaczęła obowiązywać, czyli weryfikowany adres e-mail.
Obsługa działań poczty e-mail w aplikacji mobilnej
Możesz określić, czy link z kodem działania ma być najpierw obsługiwany w aplikacji mobilnej, o ile jest ona zainstalowana. W przypadku aplikacji na Androida za pomocą interfejsu android.installApp
możesz też określić, że dana aplikacja ma zostać zainstalowana, jeśli urządzenie obsługuje tę funkcję i nie jest jeszcze zainstalowana.
Jeśli link zostanie kliknięty na urządzeniu, które nie obsługuje aplikacji mobilnej, zostanie otwarty na stronie internetowej.
Aby to zrobić, ustaw wartość handleCodeInApp
na true
w obiekcie firebase.auth.ActionCodeSettings
. Trzeba też podać nazwę pakietu aplikacji mobilnej na Androida lub identyfikator pakietu na iOS.
Gdy nie ma dostępnych aplikacji mobilnych, używany w tym miejscu zastępczy adres URL witryny należy skonfigurować w sekcji szablonów działań e-mail. Domyślna jest udostępniana dla wszystkich projektów. Więcej informacji o dostosowywaniu modułu obsługi działań dotyczących poczty e-mail znajdziesz w artykule na temat dostosowywania modułów obsługi poczty e-mail.
W tym przypadku link do aplikacji mobilnej wysłany do użytkownika będzie linkiem FDL, którego ładunek to adres URL kodu działania skonfigurowany w konsoli z parametrami zapytania oobCode
, mode
, apiKey
i continueUrl
. Jest to pierwotna wartość URL
określona w obiekcie ActionCodeSettings
. Możesz przechwytywać i obsługiwać linki przychodzące z aplikacji bez żadnych dodatkowych zależności, ale zalecamy przeanalizowanie precyzyjnego linku za pomocą biblioteki klienta FDL. Kod działania można zastosować bezpośrednio z aplikacji mobilnej w podobny sposób jak w przypadku procesu internetowego opisanego w sekcji Dostosowywanie modułów obsługi poczty e-mail.
W przypadku działań związanych z pocztą e-mail, takich jak potwierdzanie 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 zaczęła obowiązywać, czyli weryfikowany adres e-mail.