Passwörter mit der Funktion „Anmeldedaten speichern“ speichern

Wenn Sie die Anmeldung über One Tap für wiederkehrende Nutzer aktivieren möchten, können Sie Nutzer auffordern, ihr Passwort bei Google zu speichern. Der Nutzer kann sich mit seinen gespeicherten Passwörtern in Ihrer App und im Web anmelden.

Wenn Sie mit dem Speichern des Passworts beginnen, wird dem Nutzer ein Dialogfeld am unteren Rand angezeigt, in dem er auswählen kann, ob und in welchem Google-Konto er sein Passwort speichern möchte.

Screenshot zum Speichern des Passworts

Dialogfeld zum Speichern des Passworts am unteren Rand starten

Sie sollten das Dialogfeld zum Speichern des Passworts starten, nachdem Sie den Nutzernamen und das Passwort mit Ihrem Back-End authentifiziert haben. Belassen Sie die Anmeldedaten während der Authentifizierung im Arbeitsspeicher. Nachdem Sie bestätigt haben, dass die Anmeldedaten gültig sind, starten Sie das Speicherdialogfeld. Gehen Sie dazu so vor:

  1. Erstellen Sie ein neues SignInPassword-Objekt. Sie sollte mit der Nutzer-ID initialisiert werden, die sie mit Ihrem Dienst verwendet (z. B. ihrem Nutzernamen oder ihrer E-Mail-Adresse) und dem Passwort, das Sie speichern möchten.

    private static final int REQUEST_CODE_GIS_SAVE_PASSWORD = 2; /* unique request id */
    private void savePassword() {
        SignInPassword signInPassword = new SignInPassword(userId, password);
        ...
    
  2. Erstellen Sie ein SavePasswordRequest-Objekt

    SavePasswordRequest savePasswordRequest =
        SavePasswordRequest.builder().setSignInPassword(signInPassword).build();
    
  3. Rufen Sie ein PendingIntent ab, um das Dialogfeld zum Speichern des Passworts von Identity.getCredentialSavingClient anzuzeigen und den Ablauf zu starten:

    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);
           })
    

Ergebnisse des Speicherns von Passwörtern verarbeiten

Verarbeiten Sie das Ergebnis des Ablaufs zum Speichern des Passworts 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
    });