La fonctionnalité Restore Credentials (Restaurer les identifiants) du Gestionnaire d'identifiants permet aux utilisateurs de restaurer leurs comptes d'application lors de la configuration d'un nouvel appareil. Cette API est en version Preview développeur et est disponible sur tous les appareils équipés d'Android 9 ou version ultérieure et de la version 242200000 ou ultérieure des services Google Play (GMS). Voici quelques-uns des avantages de la fonctionnalité Restaurer les identifiants:
- Expérience utilisateur fluide: les utilisateurs peuvent restaurer leur compte d'application sans avoir à se connecter manuellement à chaque application.
- Engagement utilisateur accru: les utilisateurs sont plus susceptibles de continuer à utiliser votre application s'ils peuvent restaurer leur compte lors de la configuration d'un nouvel appareil.
- Efforts de développement réduits: la fonctionnalité de restauration des identifiants est intégrée au Gestionnaire d'identifiants. Les développeurs qui acceptent déjà les clés d'accès peuvent donc ajouter des fonctionnalités de restauration des identifiants.
Fonctionnement
Vous pouvez utiliser la fonctionnalité Restaurer les identifiants pour créer, obtenir et effacer les identifiants appropriés.
- Créer les identifiants de restauration: lorsque l'utilisateur se connecte à votre application, créez des identifiants de restauration associés à son compte. Ces identifiants sont stockés localement et synchronisés avec le cloud si l'utilisateur a activé la sauvegarde Google et que le chiffrement de bout en bout est disponible (les applications peuvent désactiver la synchronisation avec le cloud).
- Obtenir les identifiants de restauration: lorsque l'utilisateur configure un nouvel appareil, votre application peut demander les identifiants de restauration au Gestionnaire d'identifiants. Vous pouvez ainsi connecter automatiquement l'utilisateur sans aucune saisie supplémentaire.
- Effacer les identifiants de restauration: lorsque l'utilisateur se déconnecte de votre application, vous devez supprimer les identifiants de restauration associés.
La fonctionnalité de restauration des identifiants peut s'intégrer facilement 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 de restauration des identifiants peut récupérer et rétablir efficacement les identifiants utilisateur stockés dans des systèmes compatibles avec les clés d'accès, offrant ainsi une expérience cohérente et conviviale sur différentes plates-formes et méthodes d'authentification.
Implémentation
L'API Restore Credentials est disponible via la bibliothèque Jetpack du Gestionnaire d'identifiants. Pour l'activer, procédez comme suit :
Ajoutez la dépendance du Gestionnaire d'identifiants à votre projet.
// build.gradle.kts implementation("androidx.credentials:credentials:1.5.0-alpha03")
Créer un objet
CreateRestoreCredentialRequest
.Appelez la méthode
createCredential()
sur l'objetCredentialManager
.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)
Ces identifiants de restauration générés sont un type d'identifiants WebAuthn et sont appelés clé de restauration.
Lorsque l'utilisateur configure un nouvel appareil, appelez la méthode
getCredential()
sur l'objetCredentialManager
.// 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)
Lorsque l'utilisateur se déconnecte de votre application, appelez la méthode
clearCredentialState()
sur l'objetCredentialManager
.// 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.