Salvare le password con Risparmio credenziali

Per abilitare l'accesso One Tap per gli utenti di ritorno, puoi chiedere agli utenti di salvare la propria password con Google. L'utente potrà accedere con i propri dati salvati password nella tua app e sul web.

Quando avvii il flusso di salvataggio della password, all'utente verrà mostrata una finestra di dialogo del riquadro inferiore che consente di scegliere se salvare la password e in quale Account Google vuoi salvarla.

Screenshot Salva password

Apri la finestra di dialogo per il salvataggio della password nel foglio inferiore

Dovresti aprire la finestra di dialogo per il salvataggio della password dopo aver autenticato il e la password con il tuo backend. Mantieni le credenziali in memoria mentre con l'autenticazione. Dopo aver confermato che le credenziali sono valide, avvia il Salva la finestra di dialogo procedendo nel seguente modo:

  1. Crea un nuovo oggetto SignInPassword. Deve essere inizializzato con l'utente ID utilizzato con il 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);
        ...
    
  2. Crea un oggetto SavePasswordRequest

    SavePasswordRequest savePasswordRequest =
        SavePasswordRequest.builder().setSignInPassword(signInPassword).build();
    
  3. Richiedi un PendingIntent da cui visualizzare la finestra di dialogo per il salvataggio della password Identity.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
    });