Şifreler için Smart Lock'u Android uygulamanıza entegre etmek üzere Credentials API'yi uygulamanızın başlatma ve oturum açma akışına eklemeniz gerekir. Aşağıdaki şemada, Şifreler için Smart Lock özelliğini kullanan tipik bir Android uygulamasının akışı gösterilmektedir.
Şifreler için Smart Lock'u başarıyla entegre etmenin birçok yolu olsa da entegrasyonun özellikleri, uygulamanın yapısına ve kullanıcı deneyimine bağlıdır, ancak çoğu uygulama için aşağıdaki akış önerilir. Bu akışı kullanan uygulamalar aşağıdaki kullanıcı deneyimi avantajlarına sahiptir:
- Hizmetinizin kayıtlı tek bir kimlik bilgisine sahip mevcut kullanıcıları hemen oturum açar ve uygulamayı açtıklarında doğrudan oturum açmış görünüme giderler.
- Birden fazla kimlik bilgisi kayıtlı olan veya otomatik oturum açmayı devre dışı bırakan kullanıcıların, uygulamanın oturum açıkken görünümüne gitmeden önce yalnızca bir iletişim kutusuna yanıt vermesi gerekir.
- Kayıtlı kimlik bilgisi olmayan veya henüz kaydolmamış kullanıcılar tek bir dokunuşla adlarını ve e-posta adreslerini seçebilir ve bu bilgiler önceden doldurulmuş olarak akıllı bir şekilde oturum açma veya kaydolma görünümüne gönderilebilir.
- Kullanıcılar oturumu kapattığında uygulama, otomatik olarak tekrar oturum açmamalarını sağlar.
Kimlik bilgilerini alma
- Uygulama başladığında, hiçbir kullanıcı oturum açmamışsa
CredentialsClient.request()
numaralı telefonu arayın. Task
başarılı olursa kullanıcının kimlik bilgilerinigetResult().getCredential()
ile alın ve oturum açmak için bu bilgileri kullanın.Task
başarısız olursa ve istisnaResolvableApiException
örneğiyse vegetStatusCode()
,RESOLUTION_REQUIRED
değerini döndürürse kimlik bilgisi seçmek için kullanıcı girişi gerekir. Kullanıcıdan kayıtlı bir hesabı seçmesini istemek içinstartResolutionForResult()
çağrısı yapın, ardından kullanıcının kimlik bilgilerini almak ve oturum açmak için bu bilgileri kullanmak üzeregetParcelableExtra(Credential.EXTRA_KEY)
numaralı telefonu arayın.
Kimlik bilgilerini kaydet
Task
birApiException
ile başarısız olursa vegetStatusCode()
SIGN_IN_REQUIRED
değerini döndürürse kullanıcının kayıtlı kimlik bilgileri yoktur ve mevcut oturum açma ya da kaydolma akışınızı kullanarak manuel olarak oturum açmalı veya kaydolmalıdır. Kullanıcı oturum açmayı başarıyla tamamladıktan sonra, daha sonra erişilebilmesi için kimlik bilgilerini kaydetmesi için bir fırsat sağlayabilirsiniz (5. adım).Oturum açma ipuçlarını (ör. kullanıcının e-posta adresi) alarak kullanıcının daha hızlı ve daha kolay bir şekilde oturum açmasına veya kaydolmasına yardımcı olabilirsiniz. Kullanıcı, ipucunu seçip kimlik bilgilerini yazmayı atlayabilir. Uygulamanız kullanıcıların oturum açmasını gerektiriyorsa ilk kimlik bilgisi isteği başarısız olduktan hemen sonra ipuçlarını almayı seçebilirsiniz (aksi halde, kullanıcı oturum açma veya kaydolma akışını başlatana kadar bekleyebilirsiniz).
CredentialsClient.getHintPickerIntent()
işlevini çağırın ve kullanıcıdan hesap seçmesini istemek için amacı başlatın, ardından oturum açma ipucunu almak içingetParcelableExtra(Credential.EXTRA_KEY)
hizmetini arayın.- İpucunun kullanıcı kimliği mevcut bir kullanıcıyla eşleşirse oturum açma formunu önceden doldurun ve kullanıcının oturum açmak için şifreyi girmesine izin verin.
- İpucunun kullanıcı kimliği mevcut bir kullanıcıyla eşleşmezse kayıt formunu kullanıcı kimliği ve adıyla önceden doldurun ve kullanıcının yeni bir hesap oluşturmasına izin verin.
-
Kullanıcı başarıyla oturum açtıktan veya hesap oluşturduktan sonra kullanıcı kimliğini ve şifreyi
CredentialsClient.save()
ile kaydedin.Kullanıcı, Google ile Oturum Açma gibi birleştirilmiş bir kimlik sağlayıcıyla oturum açtıysa, kimlik olarak kullanıcının e-posta adresiyle
Credential
nesnesini oluşturun ve kimlik sağlayıcıyısetAccountType
ile belirtin.
Oturumu kapat
- Kullanıcı oturumu kapattığında, kullanıcının hemen tekrar oturum açmasını önlemek için
CredentialsClient.disableAutoSignIn()
numaralı telefonu arayın. Otomatik oturum açmayı devre dışı bırakmak, kullanıcıların oturum açma bilgilerini yeniden girmek zorunda kalmadan hesaplar arasında kolayca (örneğin, iş hesapları ve kişisel hesaplar veya paylaşılan cihazlardaki hesaplar arasında) geçiş yapmasına da olanak tanır.
Şifreler için Smart Lock'u uygulamanıza entegre etmeye hazır mısınız? Kullanmaya başlayın.