Kimlik Bilgilerini Kaydetme ile şifreleri kaydetme

Geri gelen kullanıcılar için One Tap ile oturum açmayı etkinleştirmek istiyorsanız kullanıcılardan şifrelerini Google'a kaydetmelerini isteyebilirsiniz. Kullanıcı, kayıtlı şifreleriyle uygulamanızda ve web'de oturum açabilir.

Şifre kaydetme akışını başlattığınızda kullanıcıya bir alt sayfa iletişim kutusu gösterilir. Bu iletişim kutusu, kullanıcının şifresini kaydetmek isteyip istemediğini ve şifreyi hangi Google hesabına kaydetmek istediğini seçmesine olanak tanır.

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

Şifre kaydetme alt sayfası iletişim kutusunu başlat

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

  1. Yeni bir SignInPassword nesnesi oluşturun. Kullanıcının hizmetinizle kullandığı kullanıcı kimliği (ör. kullanıcı adı veya e-posta adresi) 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ştur

    SavePasswordRequest savePasswordRequest =
        SavePasswordRequest.builder().setSignInPassword(signInPassword).build();
    
  3. Identity.getCredentialSavingClient hizmetinden şifre kaydetme iletişim kutusunu görüntülemek için bir PendingIntent alın 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'da ş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
    });