HMS User Detect ile Huawei ID Login

techYourTime
Huawei Developers - Türkiye
3 min readDec 29, 2020

Merhabalar bu yazımda mobil uygulamalarımızda güvenli bir login işlemini Auth Service ve Safety Detect servisin User Detect API ile nasıl sağlayabileceğimizden bahsedeceğim. User Detect API’i nasıl ve neden kullanmalıyız, login işlemi ile nasıl ilişkilendirebiliriz sorularını örnek bir uygulama üzerinden anlatacağım.

User Detection, mobil ve web uygulamalarda kullanıcının insan ya da otomatize edilmiş bir sistem olup olmadığını belirlemek için yaygın olarak kullanılan bir testtir, diğer adıyla “nocaptcha” olarakta bilinir. Kötü amaçlı kullanımın önüne geçmek ve gerçek kullanıcı ile güvenliği sağlamak amaçlanmaktadır.

Captcha: Completely Automated Public Turing test to tell Computers and Humans Apart (Bilgisayarları ve insanları ayırmak için tamamen otomatikleştirilmiş genel turing testi)

Detect yöntemleri bir bilgisayar tarafından uygulandığı için, insan tarafından uygulanan turing testi aksine ters turing testi olarak tanımlanır. User Detect için uygulanan bu yöntem insan müdahelesi ve eforu gerektirmemesi sebebi ile maliyeti düşüktür ve güvenilirlik açısından fayda sağlar.

Ortalama insanın CAPTCHA’yı çözmesi 10 saniye sürer.

HMS Safety Detect

HMS Core Safety Detect 5 farklı yetkinlik sunmaktadır.

o SysIntegrity, uygulamanızın yüklendiği cihazın güvenliğini kontrol eder.

o AppsCheck, kötü amaçlı uygulamaların listesini sağlar.

o URLCheck, girilen url adresninin güvenliğini kontrol eder.

o UserDetect, sahte kullanıcı tespitini sağlar.

o WifiDetect, bağlanılan ağın güvenliğini kontrol eder.

User detect API yalnızca çin dışında kullanılabilir.

Safety Detect ve Auth Service Nasıl Entegre Edebilirim ?

  1. Öncelikle huawei developer hesabımıza girerek bir proje oluşturmamız gerekiyor.
  2. Projemize HMS Core entegre ediyoruz. Bu adımla ilgili detaylı bilgiye aşağıdaki linkten ulaşabilirsiniz

3. Uygulamamızda login ile safety detect işlemi gerçekleştirecek olduğumuz için AppGallery Connect arayüzünde projemiz için Safety Detect ve Auth Service API aktif hale getiriyoruz.

Ben örnek projede sayfalar arası geçişi NavComponent kullanarak sağladım. Kullanmak istemediğiniz taktirde acitivtyler arası ya da fragment arası geçişlerle navigation işlemini sağlayabilirsiniz. Kodun içeriğine yazı sonunda bulunan github linkinden ulaşabilirsiniz.

4. Auth Service ve Safety Detect API projemiz içerisinde kullanabilmek için dependencyleri ekliyoruz.

5. Uygulamamızın senaryosuna göre kullanıcı login ekranında Huawei id ile giriş yaptıktan sonra user detect işlemi ekrana geliyor ve başarılı olması durumunda feed sayfamıza yönleniyor.

6. Bunun için ilk adım olarak login ekranında bir Huawei ID Login buton tanımlaması ve tasarımı yapmamız gerekiyor.

Huawei ID Login buton tasarım kurallarına aşağıdaki linkten ulaşabilirsiniz

7. Login Fragment içerisinde onActivityCreated methodu ile öncelikle giriş yapan kullanıcı olup olmadığını kontrol ediyoruz.

8. Huaweiid Login butonumuzun onClickListener methodu ile login ekranının ekranda görüntülenmesini sağlayalım.

9. Method içerisinde user detection yapabilmemiz için authservice e istek attıktan hemen sonra user detect API çağırıyoruz.

API dan dönen başarılı olma durumu içerisinde bir sonraki adım olan mainpage fragmenta yönlendirme işlemini gerçekleştiriyoruz. Bu adımda nav component ile ilettiğimiz veri olan username i parameter olarak ekliyoruz. Bu parametreyi nasıl elde ettiğimizi bir sonraki adımda açıklayacağım.

10. Huawei ID login işleminin başarılı olup olmadığını kontrol edip kullanıcı bilgilerini elde etmek için onActivityResult methodunu kullanıyoruz.

11. Sonucun başarılı dönmesi durumunda elde ettiğimiz signin credential içeriisnden username i global tanımladığımız bir değişken içerisine atıyoruz. Bu biz bir sonraki ekranda kullanıcıya “Hello username” içeriğini yazdırabilmemiz için imkan sağlayacak. Daha önceki adımda belirttiğim gibi burada aldığımız username nav component ile parametre olarak bir sonraki ekrana aktarıyoruz.

Özet olarak login sayfaasında huawei id login buton ile kullanıcıdan HMS bağımlı cihazındaki hesabı ile giriş yapmasını istedik, sonraki adımda giriş işleminin başarılı olması koşuluyla sahte kullanıcı olup olmadığını anlamak için bir captcha testi geçmesini istedik ve bu adımıında başarılı olması durumunda uygulamamızın ana sayfasına geçiş işlemini tamamladık.

Kaynaklar

--

--