Restaurer les identifiants

La fonctionnalité Restaurer les identifiants du Gestionnaire d'identifiants permet aux utilisateurs de restaurer leurs identifiants des comptes d'application lors de la configuration d'un nouvel appareil. Cette API est en version Preview développeur Disponible sur tous les appareils équipés d'Android 9 ou version ultérieure et des services Google Play (GMS) Core version 242200000 ou ultérieure. Voici quelques-uns des avantages de la fonctionnalité Restaurer les identifiants :

  • Expérience utilisateur fluide: les utilisateurs peuvent restaurer leur compte dans l'application sans besoin de se connecter manuellement à chaque application individuelle.
  • Un engagement accru des utilisateurs: les utilisateurs sont plus susceptibles de continuer à utiliser votre s'il peut restaurer son compte lors de la configuration d'un nouvel appareil.
  • Développement réduit: la fonctionnalité de restauration des identifiants est intégrée. avec le Gestionnaire d'identifiants, afin que les développeurs qui prennent déjà en charge les clés d'accès et de restauration des identifiants.

Fonctionnement

Vous pouvez utiliser la fonctionnalité Restaurer les identifiants pour créer, obtenir et effacer les identifiants appropriés.

  1. Créez les identifiants de restauration: lorsque l'utilisateur se connecte à votre application, créez un identifiant de restauration associé à son compte. Cet identifiant est stocké et synchronisées avec le cloud si l'utilisateur a activé la sauvegarde Google le chiffrement de bout en bout est disponible (les applications peuvent désactiver la synchronisation avec le cloud) ;
  2. Obtenir les identifiants de restauration: lorsque l'utilisateur configure un nouvel appareil, votre application peut demander la restauration des identifiants à partir du Gestionnaire d'identifiants. Vous pouvez ainsi connecter automatiquement l'utilisateur sans aucune saisie supplémentaire.
  3. Effacer les identifiants de restauration: lorsque l'utilisateur se déconnecte de votre application, vous doit supprimer les identifiants de restauration associés.

La fonctionnalité Restaurer les identifiants peut s'intégrer de manière fluide aux systèmes backend qui ont déjà implémenté des clés d'accès. Cette compatibilité découle du fait que les clés d'accès et les clés de restauration (type d'identifiants utilisé par la fonctionnalité de restauration des identifiants) respectent les mêmes spécifications techniques sous-jacentes. Cet alignement garantit que le processus récupérer et rétablir efficacement les identifiants utilisateur stockés dans des clés d'accès activées d'applications, offrant ainsi une expérience cohérente et conviviale plates-formes et méthodes d'authentification.

Bottom sheet du Gestionnaire d'identifiants
Figure 1. Diagramme illustrant la restauration des données d'une application sur un nouvel appareil à l'aide d'identifiants de restauration, y compris la création des identifiants, le lancement d'un flux de restauration et la connexion automatique de l'utilisateur

Implémentation

L'API Restore Credentials est disponible via la bibliothèque Jetpack du Gestionnaire d'identifiants. Pour l'activer, procédez comme suit :

  1. Ajoutez la dépendance du Gestionnaire d'identifiants à votre projet.

    // build.gradle.kts
    implementation("androidx.credentials:credentials:1.5.0-alpha03")
    
  2. Créer un objet CreateRestoreCredentialRequest.

  3. Appelez la méthode createCredential() sur l'objet 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)
    

    Cet identifiant de restauration généré est un type de clé d'accès, également appelé clé d'accès de restauration ou clé de restauration.

  4. Lorsque l'utilisateur configure un nouvel appareil, appelez la méthode getCredential() sur la 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. Lorsque l'utilisateur se déconnecte de votre application, appelez la méthode clearCredentialState(). sur l'objet 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)
    

Si vous utilisez un agent de sauvegarde, effectuez la partie getCredential dans le Rappel onRestore. Cela garantit que les identifiants de l'application sont restaurés immédiatement après la restauration des données de l'application.