Kimlik Bilgilerini Kaydetme ile şifreleri kaydetme

Geri gelen kullanıcılar için tek dokunuşla oturum açmayı etkinleştirmek istiyorsanız kullanıcılardan şifrelerini Google ile 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 kaydetmek isteyip istemediğini ve hangi Google Hesabı'na kaydetmek istediğini seçmesine olanak tanıyan bir alt sayfa iletişim kutusu gösterilir.

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

Şifre kaydetme alt sayfa 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 bilgilerini kimlik doğrulama sırasında 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. Kullanıcının hizmetinizle kullandığı kullanıcı kimliği (örneğin, kullanıcı adı veya e-posta adresi) ve kaydetmek istediğiniz şifre ile 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. PendingIntent öğesini kullanarak şifre kaydetme iletişim kutusunu Identity.getCredentialSavingClient konumundan görüntüleyin ve akışı başlatı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 içinde ş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
    });