Anmeldedaten wiederherstellen

Mit der Funktion Anmeldedaten wiederherstellen des Anmeldedaten-Managers können Nutzer ihre App-Konten wiederherstellen, wenn sie ein neues Gerät einrichten. Diese API befindet sich in der Entwicklervorschau und ist auf allen Geräten mit Android 9 oder höher und der Google Play-Dienste-Kernversion 242200000 oder höher verfügbar. Die Funktion „Anmeldedaten wiederherstellen“ bietet folgende Vorteile:

  • Einfache Bedienung: Nutzer können ihr App-Konto wiederherstellen, ohne sich manuell in jeder einzelnen App anmelden zu müssen.
  • Mehr Nutzer-Engagement: Es ist wahrscheinlicher, dass Nutzer Ihre , wenn sie ihr Konto beim Einrichten eines neuen Geräts wiederherstellen können.
  • Reduzierter Entwicklungsaufwand: Die Funktion „Anmeldedaten wiederherstellen“ ist integriert. mit Credential Manager. So können Entwickler, die bereits Passkeys unterstützen, Funktionen zur Wiederherstellung von Anmeldedaten.

Funktionsweise

Mit „Anmeldedaten wiederherstellen“ können Sie die entsprechenden Anmeldedaten erstellen, abrufen und löschen.

  1. Anmeldedaten für die Wiederherstellung erstellen: Wenn sich der Nutzer bei Ihrer App anmeldet, erstellen Sie die zum Konto gehörenden Anmeldedaten wiederherstellen. Diese Anmeldedaten werden gespeichert lokal und mit der Cloud synchronisiert, wenn der Nutzer Google Backup aktiviert hat und Verschlüsselung bis zum Ende ist verfügbar (Apps können die Synchronisierung mit der Cloud deaktivieren)
  2. Anmeldedaten für die Wiederherstellung abrufen: Wenn der Nutzer ein neues Gerät einrichtet, wird Ihre App kann die Wiederherstellung der Anmeldedaten vom Credential Manager anfordern. So können Sie Der Nutzer wird automatisch angemeldet, ohne dass eine zusätzliche Eingabe erforderlich ist.
  3. Anmeldedaten wiederherstellen: Wenn sich der Nutzer von Ihrer App abmeldet, sollte die zugehörigen Anmeldedaten für die Wiederherstellung löschen.

Die Funktion „Anmeldedaten wiederherstellen“ kann reibungslos in Back-End-Systeme integriert werden. für die bereits Passkeys implementiert wurden. Diese Kompatibilität ergibt sich daraus, dass sowohl Passkeys als auch Wiederherstellungsschlüssel (Anmeldedatentyp, der von der Funktion „Anmeldedaten wiederherstellen“ verwendet wird) denselben zugrunde liegenden technischen Spezifikationen entsprechen. Dieser Abgleich stellt sicher, dass der Prozess Nutzeranmeldedaten, die in Passkeys gespeichert sind, abrufen und reaktivieren und ermöglichen so eine einheitliche und nutzungsfreundliche Umgebung Plattformen und Authentifizierungsmethoden.

Untere Ansicht des Anmeldedaten-Managers
Abbildung 1: Diagramm, das die Wiederherstellung von App-Daten auf einem neuen Gerät mithilfe von Wiederherstellungsanmeldedaten darstellt, einschließlich Erstellen der Anmeldedaten, Initiieren eines Wiederherstellungsvorgangs und automatischer Nutzeranmeldung

Implementierung

Die Restore Credentials API ist über die Credential Manager Jetpack-Bibliothek verfügbar. Die App lässt sich so aktivieren:

  1. Füge deinem Projekt die Abhängigkeit vom Credential Manager hinzu.

    // build.gradle.kts
    implementation("androidx.credentials:credentials:1.5.0-alpha03")
    
  2. Erstellen Sie ein CreateRestoreCredentialRequest-Objekt.

  3. Rufen Sie die Methode createCredential() für das Objekt CredentialManager auf.

    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)
    

    Diese generierten Anmeldedaten zum Wiederherstellen sind eine Art Passkey und werden auch als Wiederherstellungspasskey oder Wiederherstellungsschlüssel bezeichnet.

  4. Wenn der Nutzer ein neues Gerät einrichtet, rufen Sie die Methode getCredential() für das CredentialManager-Objekt auf.

    // 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. Wenn sich der Nutzer von deiner App abmeldet, rufe die clearCredentialState() auf. für das CredentialManager-Objekt.

    // Create a ClearCredentialStateRequest object
    val clearRequest = ClearCredentialStateRequest(TYPE_CLEAR_RESTORE_CREDENTIAL)
    
    // On user log-out, clear the restore key
    val response = credentialManager.clearCredentialState(clearRequest)
    

Wenn Sie einen Sicherungs-Agent verwenden, führen Sie den Teil getCredential innerhalb der onRestore-Callback. So werden die Anmeldedaten der App sofort nach der Wiederherstellung der App-Daten wiederhergestellt.