Huawei Auth Service ile Mobil Kimlik Doğrulama

techYourTime
Huawei Developers - Türkiye
4 min readOct 13, 2020

Merhabalar bu yazımda AppGallery Connect Authentication Service kullanarak mobil kimlik doğrulamayı android projemize nasıl entegre edebileceğimizden bahsedeceğim.

Huawei Auth Service hızlı ve güvenli kimlik doğrulama işlemlerini yapabileceğiniz bulut tabanlı SDK sağlayıcıdır. Günümüzde çoğu uygulama login gerektirmektedir. Mobil uygulamalarda bulut tabanlı servislere yapılan atakların çoğu kullanıcı bilgilerini hedeflemektedir. Kullanıcının ekstra kayıt ve giriş işlemi yapmadan uygulamaya geçişini sağlamak kullanıcı deneyimi açısından önemli bir faktör. Bu noktada Huawei Auth Service birden çok güvenli authentication yöntemi sunmaktadır. Bu yöntemler aşağıdaki gibidir :

  • HUAWEI ID
  • HUAWEI Game Service
  • WeChat account
  • Facebook account*
  • Twitter account*
  • Weibo account
  • QQ account
  • Google account
  • Google Play Game
  • Email account
  • Mobile Number
  • Self-owned account
  • Anonymous account
  • Associated account

“*” işaretli yöntemler sadece Çin dışı ülkelerde kullanıma açıktır.

Mobile Number

Bu aşamada projemize mobil kimlik doğrulamayı nasıl dahil edebileceğimizden bahsedeceğim. İlk olarak android projemizi oluşturduktan sonra HMS Core entegrasyonunu sağlamamız gerekiyor.

Bu adım için detaylı bilgiye aşağıdaki linkten ulaşabilirsiniz.

HMS Core’u projemize entegre ettikten sonra, Auth Service SDK projemize entegre etmekle devam edeceğiz. App/build.gradle dosyamıza Auth Service dependency satırını ekleyelim.

SDK kullanımı için gerekli olan uygulama izinleri aşağıdaki gibidir. Bu izinleri manifest dosyamıza ekleyerek devam edelim.

AppGallery Connect hesabımızda oluşturduğumuz app için Auth Service i akfit hale getirelim.

Aktif ettikten sonra gelen ekranda “Mobile Number” authentication yöntemini de aktif hale getirelim.

Aynı ekranda “Settings” sekmesi altında “Verification code and notification template settings” bölümü altında yer alan SMS örneğini görüntüleyebilirsiniz.

İhtiyacımız olan sorunsuz bir kullanıcı deneyimi,

Kullanıcıların telefon numaralarını kullanarak uygulamaya giriş yapabilmesi ve kullanıcı doğrulamayı gerçekleştirmek için bu yöntemi kullanacağız. Kimliğin doğrulanması mobil geliştirmede yeni kullanıcı kayıtlarının gerçek insan olduğundan emin olmak için çok önemlidir.

Bu yöntem her bir telefon numarası için tek bir hesap oluşturulmasına imkan verdiği için çoklu hesap kullanımından kaçınmanızı sağlar. Kullanıcıların aynı cihazda birden fazla hesap oluşturmasını önüne geçebilirsiniz. Aynı zamanda kullanıcıların hesap oluşturma ve unutulması durumunda yeni şifre oluşturma işlemlerinden kurtulmasını sağlayabilirsiniz.

Kullanıcıların telefon numarasına SMS yoluyla bir doğrulama kodu göndererek ücretsiz olarak uygulamamıza giriş yapmalarını sağlayacağız.

Uygulamanıza telefon numarası ile kimlik doğrulamsı eklemek hiç bu kadar kolay olmamıştı.

İlk olarak iki adet layout ile işlemi gerçekleştirmemiz gerekiyor. İlk layout ile doğrulama kodu gönderme ve giriş işlemi için ikinci layout ise başarılı giriş durumunda uygulamamızın anasayfası olarak kullanabilmemiz için gerekli.

Giriş ya da kayıt oluşturma sayfamıza 3 adet editText eklememiz gerekiyor.

Bunlardan ilki geoCode yani bulunduğumuz ülkedeki telefon ülke kodu ikincisi ise telefon numarasını ekrandan alabilmemiz için gerekli olacak.

Daha sonrasında bir buton ekleyerek girilen telefon numarasına doğrulama kodu göndereceğiz.

Doğrulama kodu SMS olarak girilen numaraya ulaştığında, mesaj içeriğindeki kodu üçüncü editTextimize girip kodu doğrulamamız gerekiyor.

Kodu doğrulama işlemi başarılı olması durumunda kullanıcı kaydı oluşturulmuş ve giriş yapılmış olacak. Bu aşamada kullanıcıyı anasayfaya yönlendireceğiz.

İlk olarak activity ya da fragment dosyamızda AGConnectAuth instance I ile mevcut bir kullanıcı girişi olup olmadığını kontrol edeceğiz. Bu işlemi activity de onCreate methodu içerisinde gerçekleştirebilirsiniz. Eğer bir kullanıcı girişi varsa yani getCurrentUser() methodundan dönen sonuç null değilse anasayfaya yönlendirme yapabilir eğer null değer dönüyorsa kullanıcı kayıt işlemine yönlendirebilirsiniz.

verifCode methodunu doğruluğundan emin olduğumuz telefon numarasına kodu göndermek için verifCode butonun onClickListener ında kullanacağız.

VerifyCodeSettings.Builder() kullanarak ilk olarak gerçekleştirmek istediğimiz action tipini belirtiyoruz. İki çeşit action için builder kullanabiliriz. Bunlardan birincisi bizim kullandığımız ACTION_REGISTER_LOGIN kullanıcı girişi, ikincisi ise ACTION_RESET_PASSWORD şifre resetleme kodu.

Daha sonra sendInterval ile doğrulama kodu gönderilme sıklığını ayarlıyoruz. 30–120 saniye aralığında bir değer setleyebilirsiniz. Locale() ise kodu almak için kullanılan dili içeren yerel ayarlar için kullanılır eğer bir değer setlenmezse Locale.getDefault() olarak tanımlanacaktır. Biz projemiz için default ayarı kullanıyoruz.

Gönderilecek kod için bulunduğumuz konumdaki yerel dili kullancak.

Kullanıcıdan aldığımız geoCode ve telefon numarası ile PhoneAuthProvider classının requestVerifyCode methodunu kullanarak bir kod gönderilmesini talep ediyoruz.

Parametre olarak aldığımız geoCode, telefon numarası ve daha önce oluşturduğumuz settings kullanıyoruz.

İşlemin başarılı olması durumunda girilen telefon numarasına ulaşan kodu bir sonraki adımda kullanacağız.

Girilen telefon numarasının başında + işareti +86132xxxxxxxxolmadan sadece rakamlar kullanılarak 132xxxxxxxx şeklinde yazılması gerekmektedir. Ülke kodu ise birçok formatta desteklenmektedir. Örnek olarak 90 ya da 0090, +90 olarak giriş yapılabilmektedir.

Telefon numarasına gelen SMSteki kodu verifCode edittextine girdikten sonra linkPhone butonunu kullanarak kullanıcı kaydı ve girişini sağlayacağız.

İlk olarak kayıt işlemi gerçekleşmesi için ekranda daha önceden de girilmiş olan telefon numarası ve geoCode a tekrar ihtiyacımız olacak. Aynı zamanda SMS ile gelen koda da ihtiyacımız olacak.

Bu verileri ekrandan aldıktan sonra credentialWithVerifyCode method ile kullanıcının kimlik bilgilerini oluşturuyoruz. Bu aşamada doğrulama kodu zorunlu alan olarak işaretlenmelidir.

Null değer olarak gönderdiğimiz parametre şifre yani password tercihen boş bırakılabilir ya da kullanıcı deneyimine bağlı olarak ekrana şifre girilebilecek bir edittext yerleştirilebilir. Biz projemizde sadece doğrulama kodu ile kullanıcı kaydı oluşturuyoruz.

Kayıt başarı ile gerçekleştikten sonra AGConnectAuth classının getCurrentUser() methodunu kullnarak kullanıcı bilgilerine erişebiliyoruz. Bu aşamada onSuccessListener içerisinde uygulamada kullanıcıyı yönlendirmek istediğiniz ekranı kodlayabilir ya da bir sonraki adıma geçmesini sağlayabilirsiniz.

Bu yazımda AppGallery Connect Auth Service ile kullanıcı deneyimi açısından hızlı ve güvenilir bir yol olan telefon numarası ile kimlik doğrulama gerçekleştirdik. Kullanıcı girişinin mobil uygulamalardaki öneminden ve hassasiyetinden bahsettik. Faydalandığım kaynak kodlara ve dökumanlara aşadağıdaki linkten ulaşabilirsiniz. Umarım açıklayıcı bir yazı olmuştur.

--

--