Salvare le password con Risparmio credenziali

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

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

Screenshot di Salva password

Apri la finestra di dialogo per salvare il foglio inferiore della password

Devi aprire la finestra di dialogo per il salvataggio della password dopo aver autenticato il nome utente e la password con il backend. Conservare le credenziali in memoria durante l'autenticazione. Dopo aver verificato la validità delle credenziali, avvia la finestra di dialogo di salvataggio procedendo nel seguente modo:

  1. Crea un nuovo oggetto SignInPassword. Deve essere inizializzato con l'ID utente che utilizza 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 per visualizzare la finestra di dialogo per il salvataggio delle password da Identity.getCredentialSavingClient e avviare 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
    });