Kimlik Bilgilerini Kaydetme ile şifreleri kaydetme

Tek Dokunuşla Oturum Açma özelliğini geri gelen kullanıcılar için etkinleştirmek istiyorsanız kullanıcılardan şifrelerini Google'a kaydetmelerini isteyebilirsiniz. Kullanıcı, uygulamanızda ve web'de kayıtlı şifreleriyle oturum açabilir.

Şifre kaydetme akışını başlattığınızda kullanıcıya, şifresini kaydedip kaydetmeyeceğini ve hangi Google Hesabı'na kaydedeceğini seçmesine olanak tanıyan bir altbilgi iletişim kutusu gösterilir.

Şifre ekran görüntüsü kaydetme

Şifre kaydetme altbilgi iletişim kutusunu başlatma

Kullanıcı adını ve şifreyi arka uçunuzla doğruladıktan sonra şifre kaydetme iletişim kutusunu başlatmanız gerekir. Kimlik doğrulaması sırasında kimlik bilgilerini bellekte tutun. Kimlik bilgilerinin geçerli olduğunu onayladıktan sonra aşağıdakileri yaparak kaydetme iletişim kutusunu başlatın:

  1. Yeni bir SignInPassword nesnesi oluşturun. Bu, hizmetinizle kullandıkları kullanıcı kimliği (ör. kullanıcı adları veya e-posta adresleri) ve kaydetmek istediğiniz şifreyle başlatılmalıdır.

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

    SavePasswordRequest savePasswordRequest =
        SavePasswordRequest.builder().setSignInPassword(signInPassword).build();
    
  3. Identity.getCredentialSavingClient'dan şifre kaydetme iletişim kutusunu görüntülemek ve akışı başlatmak için bir PendingIntent alın:

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

Şifre kaydetme sonuçlarını işleme

onActivityResult'de şifre kaydetme akışının sonucunu işleyin:

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