Zapisuj hasła za pomocą funkcji zapisywania danych logowania

Aby włączyć logowanie jednym dotknięciem dla powracających użytkowników, możesz poprosić ich o zapisanie swoje hasło w Google. Użytkownik będzie mógł zalogować się, używając zapisanych w aplikacjach i na stronie internetowej.

Gdy rozpoczniesz procedurę zapisywania hasła, użytkownikowi wyświetli się dolne okno, w którym użytkownik może wybrać, czy chce zapisać hasło i na którym koncie Google chcesz je zapisać.

Zrzut ekranu zapisywania hasła

Otwórz okno dolnego zapisywania haseł

Okno zapisywania haseł należy uruchomić po uwierzytelnieniu nazwa użytkownika i hasło z backendu. Zachowaj dane logowania w pamięci, uwierzytelnianie. Po potwierdzeniu, że dane logowania są prawidłowe, uruchom zapisz go, wykonując te czynności:

  1. Utwórz nowy obiekt SignInPassword. Powinien zostać zainicjowany przez użytkownika Identyfikator używany przez nich w Twojej usłudze (na przykład nazwa użytkownika lub adres e-mail) i hasło, które chcesz zapisać.

    private static final int REQUEST_CODE_GIS_SAVE_PASSWORD = 2; /* unique request id */
    private void savePassword() {
        SignInPassword signInPassword = new SignInPassword(userId, password);
        ...
    
  2. Tworzenie obiektu SavePasswordRequest

    SavePasswordRequest savePasswordRequest =
        SavePasswordRequest.builder().setSignInPassword(signInPassword).build();
    
  3. Pobierz PendingIntent, aby wyświetlać okno zapisywania hasła Identity.getCredentialSavingClient i uruchom proces:

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

Obsługa wyników zapisywania haseł

Przetwórz wynik procedury zapisywania hasła w 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
    });