Passwörter mit der Funktion „Anmeldedaten speichern“ speichern

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

Wenn Sie den Ablauf zum Speichern von Passwörtern starten, wird dem Nutzer ein Bottomsheet-Dialogfeld angezeigt, in dem er auswählen kann, ob und in welchem Google-Konto er sein Passwort speichern möchte.

Screenshot des Passworts speichern

Bottomsheet-Dialogfeld zum Speichern von Passwörtern öffnen

Das Dialogfeld zum Speichern des Passworts sollte erst angezeigt werden, nachdem Sie den Nutzernamen und das Passwort mit Ihrem Backend authentifiziert haben. Anmeldedaten während der Authentifizierung im Arbeitsspeicher behalten. Nachdem Sie bestätigt haben, dass die Anmeldedaten gültig sind, rufen Sie das Speicherdialogfeld auf. Gehen Sie dazu so vor:

  1. Erstellen Sie ein neues SignInPassword-Objekt. Sie sollte mit der Nutzer-ID initialisiert werden, die der Nutzer für Ihren Dienst verwendet (z. B. Nutzername oder 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. SavePasswordRequest-Objekt erstellen

    SavePasswordRequest savePasswordRequest =
        SavePasswordRequest.builder().setSignInPassword(signInPassword).build();
    
  3. Rufen Sie ein PendingIntent ab, um das Dialogfeld zum Speichern des Passworts über Identity.getCredentialSavingClient aufzurufen 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 Passwortspeichervorgangs 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
    });