O recurso Restore Credentials do Gerenciador de credenciais permite que os usuários restaurem as contas de apps ao configurar um novo dispositivo. Essa API está na prévia para desenvolvedores e está disponível em todos os dispositivos que tenham o Android 9 ou mais recente e a versão 242200000 ou mais recente do núcleo dos serviços do Google Play (GMS, na sigla em inglês). Os benefícios do recurso "Restaurar credenciais" incluem:
- Experiência otimizada do usuário: os usuários podem restaurar a conta do app sem precisar fazer login manualmente em cada app.
- Maior engajamento do usuário: é mais provável que os usuários continuem usando sua se for possível restaurar a conta ao configurar um novo dispositivo.
- Esforço de desenvolvimento reduzido: o recurso Restaurar credenciais está integrado com o Gerenciador de credenciais, para que os desenvolvedores que já oferecem suporte a chaves de acesso possam adicionar de restauração de credenciais.
Como funciona
Use a opção "Restaurar credenciais" para criar, receber e limpar as credenciais relevantes.
- Criar a credencial de restauração: quando o usuário fizer login no app, crie uma Credencial de restauração associada à conta. Essa credencial é armazenada localmente e sincronizada com a nuvem se o usuário tiver ativado o Backup do Google e a criptografia de ponta a ponta estiver disponível (os apps podem desativar a sincronização com a nuvem).
- Receber a credencial de restauração: quando o usuário configura um novo dispositivo, seu app pode solicitar a restauração de credencial do Gerenciador de credenciais. Isso permite que você faz o login do usuário automaticamente sem exigir nenhuma entrada adicional.
- Limpar a credencial de restauração: quando o usuário sair do app, exclua a credencial de restauração associada.
O recurso "Restaurar credenciais" pode ser integrado sem problemas a sistemas de back-end que já implementaram chaves de acesso. Essa compatibilidade decorre do fato que as chaves de acesso e as chaves de restauração (o tipo de credencial usado pelo recurso de restauração de credenciais) seguem as mesmas diretrizes técnicas especificações. Esse alinhamento garante que o processo de restauração de credenciais possa recuperar e restabelecer de forma eficaz as credenciais do usuário armazenadas em sistemas com chave de acesso, oferecendo uma experiência consistente e fácil de usar em diferentes plataformas e métodos de autenticação.
Implementação
A API Restore Credentials está disponível na biblioteca do Jetpack do Gerenciador de credenciais. Para começar, siga estas etapas:
Adicione a dependência do Gerenciador de credenciais ao seu projeto.
// build.gradle.kts implementation("androidx.credentials:credentials:1.5.0-alpha03")
Crie um objeto
CreateRestoreCredentialRequest
.Chame o método
createCredential()
no objetoCredentialManager
.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)
Essa credencial de restauração gerada é um tipo de chave de acesso e também é conhecida como chave de acesso de restauração ou chave de restauração.
Quando o usuário configurar um novo dispositivo, chame o método
getCredential()
no objetoCredentialManager
.// 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)
Quando o usuário sair do app, chame
clearCredentialState()
. no objetoCredentialManager
.// 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 você estiver usando um agente de backup, execute a parte getCredential
no
onRestore
. Isso garante que as credenciais do app sejam restauradas
imediatamente após a restauração dos dados.