Przywracanie danych logowania do aplikacji podczas konfigurowania nowego urządzenia

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.

  1. Utwórz dane logowania do przywracania: gdy użytkownik zaloguje się w aplikacji, utwórz dane logowania do przywracania powiązane z jego kontem. Te dane są przechowywane lokalnie i synchronizowane z chmurą, jeśli użytkownik ma włączoną usługę Kopia zapasowa Google i jest dostępny szyfrowanie end-to-end (aplikacje mogą zrezygnować z synchronizacji z chmurą).
  2. Pobierz dane logowania do przywracania: gdy użytkownik skonfiguruje nowe urządzenie, Twoja aplikacja może poprosić Menedżera poświadczeń o dane logowania do przywracania. Dzięki temu możesz automatycznie logować użytkownika bez konieczności podawania dodatkowych danych.
  3. 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 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.

Plansza dolna Menedżera danych logowania
Rysunek 1. Diagram przedstawiający przywracanie danych aplikacji na nowym urządzeniu za pomocą danych logowania do przywracania, w tym tworzenie danych logowania, inicjowanie procesu przywracania i automatyczne logowanie użytkownika

Implementacja

Interfejs Restore Credentials API jest dostępny w bibliotece Jetpacka Menedżera poświadczeń. Aby zacząć go używać, wykonaj te czynności:

  1. Dodaj do projektu zależność Menedżera danych logowania.

    // build.gradle.kts
    implementation("androidx.credentials:credentials:1.5.0-alpha03")
    
  2. Utwórz obiekt CreateRestoreCredentialRequest.

  3. Wywołaj metodę createCredential() obiektu CredentialManager.

    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 typ danych logowania webauthn, znany jako klucz do przywracania.

  4. Gdy użytkownik skonfiguruje nowe urządzenie, wywołaj metodę getCredential() obiektu CredentialManager.

    // 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)
    
  5. Gdy użytkownik wyloguje się z aplikacji, wywołaj metodę clearCredentialState() obiektu CredentialManager.

    // 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.