Per attivare l'accesso One Tap per gli utenti di ritorno, puoi chiedere agli utenti di salvare la loro password con Google. L'utente potrà accedere con le password salvate nella tua app e sul web.
Quando avvii il flusso di salvataggio della password, all'utente viene mostrata una finestra di dialogo del riquadro in basso che gli consente di scegliere se salvare la password e in quale Account Google.
Avvia la finestra di dialogo del riquadro inferiore per il salvataggio delle password
Dovresti avviare la finestra di dialogo di salvataggio della password dopo aver autenticato il nome utente e la password con il tuo backend. Mantieni le credenziali in memoria durante l'autenticazione. Dopo aver verificato che le credenziali siano valide, avvia la dialoga di salvataggio nel seguente modo:
Crea un nuovo oggetto
SignInPassword
. Deve essere inizializzato con l'ID utente che utilizza con il tuo servizio (ad esempio il nome utente o l'indirizzo email) e la password che vuoi salvare.private static final int REQUEST_CODE_GIS_SAVE_PASSWORD = 2; /* unique request id */ private void savePassword() { SignInPassword signInPassword = new SignInPassword(userId, password); ...
Crea un oggetto
SavePasswordRequest
SavePasswordRequest savePasswordRequest = SavePasswordRequest.builder().setSignInPassword(signInPassword).build();
Ricevi un
PendingIntent
per visualizzare la finestra di dialogo di salvataggio della password daIdentity.getCredentialSavingClient
e avvia il flusso: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); })
Gestire i risultati del salvataggio delle password
Gestisci il risultato del flusso di salvataggio della password in 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
});