Bir Android uygulaması içinde kullanılacak kullanıcı adı ve şifreyi saklamak istersem, bunu yapmanın en iyi yolu nedir? Tercihler ekranından mı (ama ya kullanıcı bunu kaçırırsa?), yoksa bir iletişim kutusu açıp kullanıcıdan kimlik bilgilerini istemek mi? Eğer öyleyse, uygulama için durumu korumam gerekiyor. Bunu nasıl yapabilirim?
Gördüğüm çoğu Android ve iPhone uygulaması, kimlik bilgilerini sormak için bir başlangıç ekranı veya iletişim kutusu kullanıyor. Bence kullanıcının adını/şifresini sık sık tekrar girmesi zahmetli bir iş, bu yüzden bu bilgileri saklamak kullanılabilirlik açısından mantıklı.
(Android geliştirme kılavuzu)'ndaki tavsiye şudur:
Genel olarak, kullanıcıya sorma sıklığını en aza indirmenizi öneririz kimlik bilgileri -- kimlik avı saldırılarını daha dikkat çekici ve daha az başarılı olması muhtemeldir. Bunun yerine bir yetkilendirme belirteci kullanın ve yenileyin.
Mümkünse, kullanıcı adı ve parola sistemde saklanmamalıdır. cihazı. Bunun yerine, kullanıcı adını kullanarak ilk kimlik doğrulamasını gerçekleştirin ve kullanıcı tarafından sağlanan parola ve ardından kısa ömürlü bir parola kullanın, hizmete özel yetkilendirme belirteci.
AccountManger]2 kullanmak kimlik bilgilerini saklamak için en iyi seçenektir. SampleSyncAdapter]3 nasıl kullanılacağına dair bir örnek sağlar.
Herhangi bir nedenle bu sizin için bir seçenek değilse, Tercihler mekanizmasını kullanarak kimlik bilgilerini kalıcı hale getirebilirsiniz. Diğer uygulamalar tercihlerinize erişemez, böylece kullanıcı bilgileri kolayca açığa çıkmaz.
Parolaların SharedPreferences'da açık metin olarak saklanması konusunda endişeleriniz varsa https://stackoverflow.com/questions/785973/what-is-the-most-appropriate-way-to-store-user-settings-in-android-application/6393502#6393502 adresine bir göz atın.
SDK'daki SampleSyncAdapter örneğine de bakabilirsiniz. Size yardımcı olabilir.