Para ativar o login com um toque para usuários recorrentes, solicite que eles salvem da senha dele com o Google. O usuário poderá fazer login com as contas salvas senhas no seu app e na Web.
Quando você inicia o fluxo de salvamento de senha, o usuário recebe uma caixa de diálogo da parte inferior da página que permite escolher se querem salvar a senha e em qual Conta do Google ele quer salvá-lo.
Abrir a caixa de diálogo para salvar a senha na página inferior
Inicie a caixa de diálogo para salvar a senha depois de autenticar o nome de usuário e senha no back-end. Mantenha as credenciais na memória enquanto a autenticação. Depois de confirmar que as credenciais são válidas, inicie o Salvar fazendo o seguinte:
Crie um novo objeto
SignInPassword
. Ele deve ser inicializado com o nome ID que usam com seu serviço (por exemplo, nome de usuário ou endereço de e-mail) e a senha que você quer salvar.private static final int REQUEST_CODE_GIS_SAVE_PASSWORD = 2; /* unique request id */ private void savePassword() { SignInPassword signInPassword = new SignInPassword(userId, password); ...
Criar um objeto
SavePasswordRequest
.SavePasswordRequest savePasswordRequest = SavePasswordRequest.builder().setSignInPassword(signInPassword).build();
Consiga um
PendingIntent
para mostrar a caixa de diálogo de salvamento de senha doIdentity.getCredentialSavingClient
e inicie o fluxo:Identity.getCredentialSavingClient(activity) .savePassword(savePasswordRequest) .addOnSuccessListener( result -> { startIntentSenderForResult( result.getPendingIntent().getIntentSender(), REQUEST_CODE_GIS_SAVE_PASSWORD, /* fillInIntent= */ null, /* flagsMask= */ 0, /* flagsValue= */ 0, /* extraFlags= */ 0, /* options= */ null); })
Gerenciar resultados de salvamento de senha
Processe o resultado do fluxo de salvamento de senha em onActivityResult:
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQUEST_CODE_GIS_SAVE_PASSWORD) {
if (resultCode == Activity.RESULT_OK) {
/* password was saved */
} else if (resultCode == Activity.RESULT_CANCELED) {
/* password saving was cancelled */
}
}
}
private ActivityResultLauncher<IntentSenderRequest> savePasswordHandler =
registerForActivityResult(new ActivityResultContracts.StartIntentSenderForResult(), result -> {
// handle intent result here
});