Ripristina le credenziali

La funzionalità Ripristina credenziali di Gestore delle credenziali consente agli utenti di ripristinare le proprie account di app durante la configurazione di un nuovo dispositivo. Questa API è in anteprima per gli sviluppatori e disponibile su tutti i dispositivi con Android 9 o versioni successive e Google Play Services (GMS) Core 242200000 o versioni successive. I vantaggi del ripristino delle credenziali include:

  • Esperienza utente perfetta: gli utenti possono ripristinare il proprio account dell'app senza dover accedere manualmente a ogni singola app.
  • Maggiore coinvolgimento degli utenti: è più probabile che gli utenti continuino a utilizzare il tuo app se può ripristinare il proprio account durante la configurazione di un nuovo dispositivo.
  • Riduzione dello sforzo di sviluppo: la funzionalità di ripristino delle credenziali è integrata con Gestore delle credenziali, pertanto gli sviluppatori che supportano già le passkey possono aggiungere funzionalità di ripristino delle credenziali.

Come funziona

Puoi usare le credenziali di ripristino per creare, ottenere e cancellare i dati e credenziali.

  1. Crea la credenziale di ripristino: quando l'utente accede all'app, crea una credenziale di ripristino associata al proprio account. Questa credenziale viene memorizzata localmente e sincronizzata con il cloud se l'utente ha attivato il Backup di Google e la crittografia end-to-end è disponibile (le app possono disattivare la sincronizzazione con il cloud).
  2. Ottieni la credenziale di ripristino: quando l'utente configura un nuovo dispositivo, la tua app può richiedere la credenziale di ripristino da Gestione credenziali. Questo consente di consente all'utente di accedere automaticamente senza richiedere ulteriori input.
  3. Cancellare la credenziale di ripristino: quando l'utente si disconnette dall'app, Deve eliminare la credenziale di ripristino associata.

La funzionalità Ripristina credenziali può essere integrata senza problemi con i sistemi di backend che hanno già implementato le passkey. Questa compatibilità deriva dal fatto che sia le passkey sia le chiavi di ripristino (tipo di credenziale utilizzato dalla funzionalità Ripristina credenziali) rispettano le stesse specifiche tecniche di base. Questo allineamento assicura che il processo di ripristino delle credenziali possa Recuperare e reintegrare in modo efficace le credenziali utente memorizzate in chiavi abilitate sistemi, offrendo un'esperienza coerente e facile da usare in diversi le piattaforme e i metodi di autenticazione.

Riquadro inferiore Gestore delle credenziali
Figura 1. Diagramma che mostra il ripristino dei dati di un'app su un nuovo dispositivo utilizzando una credenziale di ripristino, inclusa la creazione della credenziale, l'avvio di un flusso di ripristino e l'accesso automatico dell'utente

Implementazione

L'API Restore Credentials è disponibile tramite la libreria Credential Manager Jetpack. Per iniziare, procedi nel seguente modo:

  1. Aggiungi la dipendenza Gestore delle credenziali al progetto.

    // build.gradle.kts
    implementation("androidx.credentials:credentials:1.5.0-alpha03")
    
  2. Crea un oggetto CreateRestoreCredentialRequest.

  3. Chiama il metodo createCredential() sull'oggetto 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)
    

    Questa credenziale di ripristino generata è un tipo di passkey ed è nota anche come passkey di ripristino o chiave di ripristino.

  4. Quando l'utente configura un nuovo dispositivo, chiama il metodo getCredential() sulla Oggetto 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. Quando l'utente esce dalla tua app, chiama il clearCredentialState() sull'oggetto 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)
    

Se utilizzi un agente di backup, esegui la parte getCredential all'interno del callback onRestore. In questo modo ti assicuri che le credenziali dell'app vengano ripristinate subito dopo il ripristino dei dati dell'app.