Easy account restoration for Android apps

Easy account restoration for Android apps



Easy account restoration for Android apps

Posted by Neelansh Sahai – Developer Relations Engineer

Do you know that, on common, 40% of the folks within the US reset or exchange their smartphones yearly? This frequent machine turnover presents a problem – and a possibility – for sustaining sturdy person relationships. When customers get a brand new telephone, the friction of re-entering login credentials can result in frustration, app abandonment, and churn.

To handle this concern, we’re introducing Restore Credentials, a brand new characteristic of Android’s Credential Supervisor API. With Restore Credentials, apps can seamlessly onboard customers to their accounts on a brand new machine after they restore their apps and knowledge from their earlier machine. This makes the transition to a brand new machine easy and fosters loyalty and long run relationships.

On prime of all this, there is no developer effort required for the switch of a restore key from one machine to the opposite, as this course of is tied along with the android system’s backup and restore mechanism. Nevertheless, if you wish to login your customers silently as quickly because the restore is accomplished, you would possibly wish to implement BackupAgent and add your logic within the onRestore callback. The expertise is pleasant – customers will proceed being signed in as they had been on their earlier machine, and they’ll be capable to get notifications to simply entry their content material with out even needing to open the app on the brand new machine.

An illustration the process of restoring app data and keys to a new device, highlighting automated steps and user interactions.  The top row shows a user signing into an app and a restore key being saved locally, while the bottom row shows the restore process on a new device.

click on to enlarge

A few of the advantages of the Restore Credentials characteristic embrace:

    • Seamless person expertise: Customers can simply transition to a brand new Android machine.
    • Rapid engagement: Interact customers with notifications or different prompts as quickly as they begin utilizing their new machine.
    • Silent login with backup agent integration: When you’re utilizing a backup agent, customers may be mechanically logged again in after knowledge restoration is full.
    • Restore key checks with out backup agent integration: If a backup agent is not getting used, the app can examine for a restore key upon first launch after which log the person in mechanically.

How does Restore Credentials work?

The Restore Credentials characteristic permits seamless person account restoration on a brand new machine. This course of happens mechanically within the background throughout machine setup when a person restores apps and knowledge from a earlier machine. By restoring app credentials, the characteristic permits the app to signal the person again in with out requiring any further interplay.

The credential sort that’s supported for this characteristic is known as restore key, which is a public key appropriate with passkey / FIDO2 backends.

A diagram shows the device-to-device and cloud backup restore processes for app data and restore keys between old and new devices.  Steps are numbered and explained within the diagram.

Diagram that depicts restoring an app knowledge to a brand new machine utilizing a restore credential, together with creating the credential, initiating a restore circulate, and automated person sign-in.

Person circulate

On the previous machine:

  1. If the present signed-in person is trusted, you possibly can generate a restore key at any level after they’ve authenticated in your app. As an example, this might be instantly after login or throughout a routine examine for an present restore key.
  2. The restore secret’s saved regionally and backed as much as the cloud. Apps can opt-out of backing it as much as the cloud.

On the brand new machine:

  1. When organising a brand new machine, the person can choose one of many two choices to revive knowledge. Both they will restore knowledge from a cloud backup, or can regionally switch the information. If the person transfers regionally, the restore secret’s transferred regionally from the previous to the brand new machine. In any other case, if the person restores utilizing the cloud backup, the restore key will get downloaded together with the app knowledge from cloud backup to the brand new machine.
  2. As soon as this restore secret’s out there on the brand new machine, the app can use it to log within the person on the brand new machine silently within the background.

Notice: You need to delete the restore key as quickly because the person indicators out. You don’t need your person to get caught in a cycle of signing out deliberately after which mechanically getting logged again in.

The best way to implement Restore Credentials

Utilizing the Jetpack Credential Supervisor allow you to create, get, and clear the related Restore Credentials:

    • Create a Restore Credential: When the person indicators in to your app, create a Restore Credential related to their account. This credential is saved regionally and synced to the cloud if the person has enabled Google Backup and finish to finish encryption is obtainable. Apps can decide out of syncing to the cloud.
    • Get the Restore Credential: When the person units up a brand new machine, your app requests the Restore Credential from Credential Supervisor. This enables your person to check in mechanically.
    • Clear the Restore Credential: When the person indicators out of your app, delete the related Restore Credential.

Restore Credentials is obtainable by means of the Credential Supervisor Jetpack library. The minimal model of the Jetpack Library is 1.5.0-beta01, and the minimal GMS model is 242200000. For extra on this, seek advice from the Restore Credentials DAC web page. To get began, comply with these steps:

// construct.gradle.kts
implementation("androidx.credentials:credentials:1.5.0-beta01")
// Fetch Registration JSON from server
// Identical because the registrationJson created on the time of making a Passkey
// See documentation for more information
val registrationJson = ... 

// Create the CreateRestoreCredentialRequest object
// Go within the registrationJSON 
val createRequest = CreateRestoreCredentialRequest(
  registrationJson,
  /* isCloudBackupEnabled = */ true
)

      NOTE: Set the isCloudBackupEnabled flag to false if you would like the restoreKey to be saved regionally and never within the cloud. It’s set as true by default

val credentialManager = CredentialManager.create(context)

// On a profitable authentication create a Restore Key
// Go within the context and CreateRestoreCredentialRequest object
val response = credentialManager.createCredential(
    context,
    createRestoreRequest
)

    4. When the person units up a brand new machine, name the getCredential() technique on the CredentialManager object.

// Fetch the Authentication JSON from server
val authenticationJson = ...

// Create the GetRestoreCredentialRequest object
val choices = GetRestoreCredentialOption(authenticationJson)
val getRequest = GetCredentialRequest(Immutablelist.of(choices))

// The restore key may be fetched in two situations to 
// 1. On the primary launch of app on the machine, fetch the Restore Key
// 2. Within the onRestore callback (if the app implements the Backup Agent)
val response = credentialManager.getCredential(context, getRequest)

When you’re utilizing a backup agent, carry out the getCredential half throughout the onRestore callback. This ensures that the app’s credentials are restored instantly after the app knowledge is restored.

    5. When the person indicators out of your app, name the clearCredentialState() technique on the CredentialManager object.

// Create a ClearCredentialStateRequest object
val clearRequest = ClearCredentialStateRequest(/* requestType = */ 1)

// On person log-out, clear the restore key
val response = credentialManager.clearCredentialState(clearRequest)

Conclusion

The Restore Credentials characteristic offers vital advantages, making certain customers expertise a easy transition between gadgets, and permitting them to log in shortly and simply by means of backup brokers or restore key checks. For builders, the characteristic is simple to combine and leverages present passkey server-side infrastructure. General, Restore Credentials is a priceless instrument that delivers a sensible and user-friendly authentication answer.

This weblog submit is part of our sequence: Highlight Week: Passkeys. We’re offering you with a wealth of assets by means of the week. Assume informative weblog posts, participating movies, sensible pattern code, and extra—all rigorously designed that can assist you leverage the most recent developments in seamless sign-up and sign-in experiences.

With these cutting-edge options, you possibly can improve safety, scale back friction in your customers, and keep forward of the curve within the quickly evolving panorama of digital identification. To get a whole overview of what Highlight Week has to supply and the way it can profit you, remember to learn our overview weblog submit.

Leave a Reply

Your email address will not be published. Required fields are marked *