Wenn Sie die One Tap-Anmeldung für wiederkehrende Nutzer aktivieren möchten, können Sie Nutzer zum Speichern auffordern sein Passwort an Google senden. Der Nutzer kann sich mit seinem gespeicherten Passwörter in Ihrer App und im Web.
Wenn du den Vorgang zum Speichern von Passwörtern startest, wird dem Nutzer eine Dialogfeld am unteren Rand, über das der Nutzer auswählen kann, ob er sein Passwort speichern möchte und in welchem Google-Konto sie gespeichert werden soll.
Dialogfeld zum Speichern am unteren Rand des Passworts öffnen
Sie sollten das Dialogfeld zum Speichern des Passworts öffnen, nachdem Sie das Nutzername und Passwort mit Ihrem Backend. Anmeldedaten speichern, während Authentifizierung. Nachdem Sie bestätigt haben, dass die Anmeldedaten gültig sind, starten Sie den mit den folgenden Schritten speichern:
Erstellen Sie ein neues
SignInPassword
-Objekt. Es sollte mit dem Nutzer initialisiert werden ID, die sie mit Ihrem Dienst verwenden (z. B. Nutzername oder E-Mail-Adresse) und das 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); ...
Erstellen Sie ein
SavePasswordRequest
-ObjektSavePasswordRequest savePasswordRequest = SavePasswordRequest.builder().setSignInPassword(signInPassword).build();
PendingIntent
anfordern, um das Dialogfeld zum Speichern des Passworts aufzurufen vonIdentity.getCredentialSavingClient
und starten Sie den Ablauf: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 zum Speichern von Passwörtern verarbeiten
So verarbeiten Sie das Ergebnis des Vorgangs zum Speichern von Passwörtern 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
});