Funkcja Przywracanie danych logowania w Menedżerze danych logowania umożliwia użytkownikom przywracanie kont aplikacji podczas konfigurowania nowego urządzenia. Ten interfejs API jest dostępny w wersji dla programistów i można go używać na wszystkich urządzeniach z Androidem 9 lub nowszym i Usługami Google Play (GMS) w wersji 242200000 lub nowszej. Zalety funkcji przywracania danych logowania:
- Łatwa obsługa: użytkownicy mogą przywrócić swoje konto w aplikacji bez konieczności ręcznego logowania się w poszczególnych aplikacjach.
- Wzrost zaangażowania użytkowników: użytkownicy chętniej będą korzystać z aplikacji, jeśli będą mogli przywrócić swoje konto podczas konfigurowania nowego urządzenia.
- Mniejsze nakłady na rozwój: funkcja przywracania danych logowania jest zintegrowana z Menedżerem danych logowania, więc deweloperzy, którzy obsługują już klucze dostępu, mogą dodać funkcje przywracania danych logowania.
Jak to działa
Za pomocą funkcji przywracania danych logowania możesz tworzyć, pobierać i usuwać odpowiednie dane logowania.
- Utwórz dane logowania do przywracania: gdy użytkownik zaloguje się w Twojej aplikacji, utwórz dla niego certyfikat przywracania. Dane logowania są przechowywane lokalnie i synchronizowane z chmurą, jeśli użytkownik włączył Kopię zapasową Google i dostępne jest pełne szyfrowanie (aplikacje mogą zrezygnować z synchronizacji z chmurą).
- Uzyskaj dane logowania do przywracania: gdy użytkownik skonfiguruje nowe urządzenie, Twoja aplikacja może poprosić o przywrócenie danych logowania w Menedżerze danych logowania. Dzięki temu możesz automatycznie logować użytkownika bez konieczności podawania dodatkowych danych.
- Wyczyść przywrócone dane logowania: gdy użytkownik wyloguje się z aplikacji, powinieneś usunąć powiązane z nią przywrócone dane logowania.
Funkcja przywracania danych logowania może płynnie integrować się z systemami backendowymi, które mają już zaimplementowane klucze dostępu. Ta zgodność wynika z tego, że zarówno klucze dostępu, jak i klucze do przywracania (typ danych uwierzytelniających używany przez funkcję przywracania danych uwierzytelniających) są zgodne z tymi samymi podstawowymi specyfikacjami technicznymi. Dzięki temu proces przywracania danych logowania może skutecznie pobierać i przywracać dane logowania użytkownika zapisane w systemach obsługujących klucze dostępu, zapewniając spójne i przyjazne dla użytkownika działanie na różnych platformach i przy użyciu różnych metod uwierzytelniania.
Implementacja
Interfejs API przywracania danych logowania jest dostępny w bibliotece Menedżera poświadczeń Jetpacka. Aby zacząć go używać, wykonaj te czynności:
Dodaj do projektu zależność menedżera danych logowania.
// build.gradle.kts implementation("androidx.credentials:credentials:1.5.0-alpha03")
Utwórz obiekt
CreateRestoreCredentialRequest
.Wywołaj metodę
createCredential()
obiektuCredentialManager
.val credentialManager = CredentialManager.create(context) // On a successful authentication create a Restore Key // Pass in the context and CreateRestoreCredentialRequest object val response = credentialManager.createCredential(context, createRestoreRequest)
Wygenerowane dane logowania do przywracania to rodzaj klucza dostępu. Nazywa się go też kluczem dostępu do przywracania lub kluczem do przywracania.
Gdy użytkownik konfiguruje nowe urządzenie, wywołaj metodę
getCredential()
w obiekcieCredentialManager
.// Fetch the Authentication JSON from server val authenticationJson = ... // Create the GetRestoreCredentialRequest object val options = GetRestoreCredentialOption(authenticationJson) val getRequest = GetCredentialRequest(Immutablelist.of(options)) // The restore key can be fetched in two scenarios to // 1. On the first launch of app on the device, fetch the Restore Key // 2. In the onRestore callback (if the app implements the Backup Agent) val response = credentialManager.getCredential(context, getRequest)
Gdy użytkownik wyloguje się z aplikacji, wywołaj metodę
clearCredentialState()
obiektuCredentialManager
.// Create a ClearCredentialStateRequest object val clearRequest = ClearCredentialStateRequest(TYPE_CLEAR_RESTORE_CREDENTIAL) // On user log-out, clear the restore key val response = credentialManager.clearCredentialState(clearRequest)
Jeśli używasz agenta zapasowego, wykonaj część getCredential
w ramach wywołania zwrotnego onRestore
. Dzięki temu dane logowania aplikacji zostaną przywrócone natychmiast po przywróceniu danych aplikacji.