Kimlik Bilgisi Yöneticisi, şifre tabanlı oturum açmayı desteklese de geçiş anahtarları ve Google ile oturum açma gibi modern ve daha güvenli kimlik doğrulama yöntemlerine öncelik vermenizi önemle tavsiye ederiz. Bu yöntemler, önemli ölçüde daha iyi güvenlik ve kullanıcı deneyimi sunar. Ancak uygulamanızın şifreleri desteklemesi gerekiyorsa Kimlik Bilgisi Yöneticisi ile şifreleri uygulamak için bu kılavuzu referans olarak kullanın.
Kimlik Bilgisi Yöneticisi, uygulamanızın kullanıcı kimlik bilgilerini (kullanıcı adları ve şifreler dahil) kaydetmesi ve alması için birleşik bir API sağlar. Bu sayede kullanıcıların oturum açma süreci basitleşir ve kimlik bilgisi sağlayıcıları sorunsuz bir şekilde kullanabilirler.
Ön koşullar
Kimlik Bilgisi Yöneticisi'nin şifre uygulaması, Android 4.4 (API düzeyi 19) ve sonraki sürümleri çalıştıran cihazlarda kullanılabilir.
Genel Bakış
Bu kılavuzda, şifreyle oluşturma, kaydetme ve oturum açma için uygulamanızda yapılması gereken değişiklikler ele alınmaktadır.
- Uygulamanıza bağımlılıklar ekleme: Gerekli Kimlik Bilgisi Yöneticisi kitaplıklarını ekleyin.
- Kimlik Bilgisi Yöneticisi'ni başlatma: Kimlik Bilgisi Yöneticisi örneği oluşturun.
- Kullanıcı şifresini kaydetme: Kullanıcı kimlik bilgilerini güvenli bir şekilde saklayın.
- Şifreyle oturum açma: Giriş için depolanan kimlik bilgilerini alıp kullanın.
- Otomatik doldurma özelliğinin kullanılacağı alanları belirleyin: Daha iyi bir kullanıcı deneyimi için otomatik doldurma özelliğini kullanın.
- Digital Asset Links desteği eklendi: Bağlı uygulamalar ve web siteleri arasında şifre paylaşma desteği eklendi.
Uygulamanıza bağımlılık ekleme
Uygulama modülünüzün build.gradle dosyasına aşağıdaki bağımlılıkları ekleyin:
Kotlin
dependencies { implementation("androidx.credentials:credentials:1.7.0-alpha02") }
Groovy
dependencies { implementation "androidx.credentials:credentials:1.7.0-alpha02" }
Kimlik Bilgisi Yöneticisi'ni başlatma
CredentialManager nesnesi oluşturmak için uygulamanızı veya etkinlik bağlamınızı kullanın.
// Use your app or activity context to instantiate a client instance of
// CredentialManager.
private val credentialManager = CredentialManager.create(context)
Kullanıcı şifresini kaydetme
Kullanıcı uygulamanızda başarıyla kaydolduğunda veya şifresini güncellediğinde bu kimlik bilgilerini kullanıcının şifre yöneticisine kaydedin.
Şifre isteği oluşturma:
CreatePasswordRequestnesnesi, kaydedilecek kullanıcı adını ve şifreyi içerir. Kaydetme sürecini başlatmak içincredentialManager.createCredential()numaralı telefonu arayın.Yanıtı işleme:
CreatePasswordResponseişleyin ve hataları yönetin (ör. kullanıcı isteği iptal ederse).
suspend fun registerPassword(username: String, password: String) {
// Initialize a CreatePasswordRequest object.
val createPasswordRequest =
CreatePasswordRequest(id = username, password = password)
// Create credential and handle result.
coroutineScope {
try {
val result =
credentialManager.createCredential(
// Use an activity based context to avoid undefined
// system UI launching behavior.
activityContext,
createPasswordRequest
)
// Handle register password result
} catch (e: CreateCredentialException) {
handleFailure(e)
}
}
}
Şifreyle oturum açma
Kayıtlı kimlik bilgilerini almak için GetCredentialRequest ile GetPasswordOption oluşturun ve getCredential() işlevini çağırın. Belirtilen kullanıcı kimliklerine göre hangi şifrelerin getirileceğini filtrelemek için isteğe bağlı allowedUserIds alanını kullanın.
val getPasswordOption = GetPasswordOption()
val credentialRequest = GetCredentialRequest.Builder()
.addCredentialOption(getPasswordOption)
.build()
Otomatik doldurmanın kullanılması gereken alanları belirleme
android:isCredential özelliği, kimlik bilgisi sağlayıcıların otomatik doldurma için tasarlanmış alanları belirlemesine yardımcı olarak daha sorunsuz bir kullanıcı deneyimi sağlar. Bu özellik, mevcut autofillHints özelliğini tamamlar.
Belirli alanların otomatik doldurma için kullanılacağını belirtmenin avantajları şunlardır:
- Geliştirilmiş otomatik doldurma doğruluğu: Şifre yöneticilerinin ve Android sisteminin, kimlik bilgileri için tasarlanan alanları daha iyi tanımlamasına yardımcı olur.
- Gelişmiş kullanıcı deneyimi: Daha sorunsuz ve güvenilir otomatik doldurma önerileri sunulabilir.
Kullanıcı adı ve şifre alanlarına aşağıdaki örnekte gösterildiği gibi isCredential özelliğini ekleyin:
<EditText
android:id="@+id/username_edittext"
android:autofillHints="username"
android:isCredential="true" />
<EditText
android:id="@+id/password_edittext"
android:inputType="textPassword"
android:autofillHints="password"
android:isCredential="true" />
Alternatif olarak, aşağıdaki snippet'te gösterildiği gibi özelliği programatik olarak ekleyin:
if (android.os.Build.VERSION.SDK_INT >=
android.os.Build.VERSION_CODES.UPSIDE_DOWN_CAKE) { // Android 14
usernameEditText.isCredential = true
passwordEditText.isCredential = true
}
Digital Asset Links desteği ekleme
Şifre yöneticileriyle uyumluluğu sağlamak için uygulamanız ve web siteniz arasında Digital Asset Links'i yapılandırmanız gerekir. Bu sayede kimlik bilgileri her iki platformda da güvenli bir şekilde paylaşılabilir.