Se o login do One Tap atender às suas necessidades, considere usá-lo. One Tap tem uma experiência de usuário atualizada e outras melhorias.

Fluxo de integração do Android

Para integrar o Smart Lock para senhas no app Android, é necessário adicionar chamadas à API Credentials ao fluxo de inicialização e login do app. O diagrama a seguir mostra o fluxo de um app Android típico que usa o Smart Lock para senhas.

Há muitas maneiras de integrar o Smart Lock para senhas, e as especificações da integração dependem da estrutura e da experiência do usuário do app, mas o fluxo a seguir é recomendado para a maioria dos apps. Os apps que usam esse fluxo têm vantagens de experiência do usuário:

  • Os usuários atuais do serviço que têm uma única credencial salva serão conectados imediatamente e serão encaminhados diretamente para a visualização de login quando abrirem o app.
  • Os usuários que têm várias credenciais salvas ou que desativaram o login automático precisam responder a apenas uma caixa de diálogo antes de acessar a visualização de login do app.
  • Os usuários que não têm credenciais salvas ou ainda não se inscreveram podem escolher o nome e o e-mail com um único toque e ser enviados de maneira inteligente à visualização de login ou inscrição, com essas informações pré-preenchidas.
  • Quando os usuários saem, o app garante que eles não façam login automaticamente.

Diagrama do fluxo de login do Smart Lock

Recuperar credenciais

  1. Quando o app for iniciado, chame CredentialsClient.request() se nenhum usuário tiver feito login.
  2. Se Task for bem-sucedido, consiga as credenciais do usuário com getResult().getCredential() e use-as para fazer login.
  3. Se o Task falhar e a exceção for uma instância de ResolvableApiException e getStatusCode() retornar RESOLUTION_REQUIRED, a entrada do usuário será necessária para escolher uma credencial. Chame startResolutionForResult() para solicitar que o usuário selecione uma conta salva, chame getParcelableExtra(Credential.EXTRA_KEY) para receber as credenciais do usuário e use-as para fazer login.

Salvar credenciais

  1. Se o Task falhar com um ApiException e getStatusCode() retornar SIGN_IN_REQUIRED, o usuário não tem credenciais salvas e precisa fazer login ou se inscrever manualmente usando seu fluxo de login ou inscrição atual. Depois que o usuário fizer login, você poderá oferecer uma oportunidade de salvar as credenciais para uma recuperação futura (etapa 5).

    Você pode ajudar o usuário a fazer login ou se inscrever com mais rapidez e facilidade. Basta recuperar dicas de login, como o endereço de e-mail do usuário. O usuário pode selecionar a dica e ignorar a digitação das credenciais. Se o app exigir que os usuários façam login, é possível recuperar dicas imediatamente após a falha na solicitação de credenciais inicial. Caso contrário, será possível aguardar até que o usuário inicie o fluxo de login ou inscrição.

    1. Chame CredentialsClient.getHintPickerIntent() e inicie a intent para solicitar que o usuário selecione uma conta. Em seguida, chame getParcelableExtra(Credential.EXTRA_KEY) para receber a dica de login.
    2. Se o ID do usuário da dica corresponder a um usuário existente, preencha o formulário de login com ele e permita que o usuário insira a senha para fazer login.
    3. Se o ID do usuário da dica não corresponder a um usuário existente, preencha o formulário de inscrição com o ID e o nome do usuário e permita que o usuário crie uma nova conta.
  2. Depois que o usuário fizer login ou criar uma conta, salve o ID e a senha com CredentialsClient.save().

    Se o usuário fez login com um provedor de identidade federado, como o Login do Google, crie o objeto Credential com o endereço de e-mail do usuário como o ID e especifique o provedor de identidade com setAccountType.

Sair

  1. Quando o usuário sair, chame CredentialsClient.disableAutoSignIn() para evitar que ele seja conectado novamente. A desativação do login automático também permite que os usuários alternem entre contas com facilidade, por exemplo, entre contas pessoais e de trabalho ou entre contas em dispositivos compartilhados, sem precisar inserir as informações de login novamente.

Tudo pronto para integrar o Smart Lock para senhas no seu app? Primeiros passos.