Telefon numaralarını otomatik olarak doğrulamak için hem istemci hem de emin olmanız gerekir. Bu belgede, sunucu kısmını uygulayın.
Telefon doğrulama sunucusu üç görevden sorumludur:
- Tek seferlik bir kod içeren ve istemci tarafı SMS Retriever API'sinin beklediği biçim
- Doğrulama mesajını kullanıcının cihazına gönderme
- Sunucuya geri gönderildiğinde tek seferlik kodu doğrulama ve arka ucunuzun gerektirdiği tüm doğrulama sonrası görevleri
Uygulamanızın sunucuyla nasıl etkileşimde bulunduğuna ilişkin ayrıntılar size bağlıdır. Yaygın bir yaklaşımı, biri istek alan iki uç noktaya sahip bir REST API sunmaktır. doğrulama ve SMS doğrulama mesajları gönderme işlemlerini yapıp uygulamanızdan bir defalık kodlar alan ikinci uç nokta.
1. Doğrulama mesajı oluşturun
Sunucunuz bir telefon numarasını doğrulamak için istek aldığında, ilk olarak Kullanıcının cihazına gönderdiğiniz doğrulama iletisi. Bu mesaj zorunluluk:
- 140 bayttan uzun olmamalıdır
- İstemcinin sunucunuza geri gönderdiği tek seferlik bir kod içermelidir. doğrulama akışını tamamlayın (bkz. Tek seferlik kod oluşturma)
- Uygulamanızı tanımlayan 11 karakterlik bir karma dizesi ekleyin (bkz. Uygulamanızın karma dizesini hesaplama)
Aksi takdirde, doğrulama iletisinin içeriği seçtiğiniz herhangi bir şey olabilir. Tek seferlik bilgileri kolayca çıkarabileceğiniz bir mesaj oluşturmak işleyeceğiz. Örneğin, geçerli bir doğrulama mesajı takip etmek için:
Your ExampleApp code is: 123ABC78.FA+9qCX9VSu
Tek seferlik kod oluşturma
Tek kullanımlık kodları birçok farklı şekilde uygulayabilirsiniz (kodlar yalnızca Bu tahmin edilemez ve istemci aynı sonuçları istediğinde kodları bir kullanıcıya veya telefon numarasına bunları sunucunuza geri gönderir. Kodları kolayca yazabileceğinizden, kullanıcıların kodu manuel olarak yazmasını gerektirecek her türlü duruma uyum sağlayın.
Tek seferlik kodları uygulamanın bir yolu, rastgele sayılar oluşturmaktır. anahtar olarak kullanır. Örneğin, doğrulama işlemi için aşağıdaki gibi bir tablo seçin:
Kimlik | Kullanıcı | Son Geçerlilik Tarihi |
---|---|---|
123456789... | 1234 | 14.3.2017 1:59 |
base32 kodlu kimliği tek seferlik kod olarak kullanabilirsiniz.
Uygulamanızın karma dizesini hesaplama
Google Play Hizmetleri, hangi doğrulama işleminin veya uygulamanıza gönderilecek mesajlar oluşturabilirsiniz. Karma dizesi, uygulamanızın paket adından oluşur ve uygulamanızın ortak anahtar sertifikası. Karma dize oluşturmak için:
Google Play'den uygulama imzalama özelliğini kullanıyorsanız uygulama imzalama sertifikanızı (
deployment_cert.der
) şuradan indirin: Google Play Console'un Uygulama imzalama bölümü.Ardından, uygulama imzalama sertifikasını geçici bir anahtar deposuna aktarın:
keytool -importcert -file deployment_cert.der -keystore temporary.keystore -alias PlayDeploymentCert
.APK'larınızı doğrudan imzalıyorsanız bu adımı atlayın.
Uygulama imzalama sertifikanızı (yukarıda içe aktardığınız sertifika) alın veya küçük harfli onaltılık dize olarak, APK'larınızı doğrudan imzalamak için kullandığınız biçimdir.
Örneğin, oluşturulan geçici anahtar deposundan onaltılık dizeyi almak için aşağıdaki komutu yazın:
keytool -exportcert -keystore temporary.keystore -alias PlayDeploymentCert | xxd -p | tr -d "[:space:]"
.APK'larınızı doğrudan imzalarsanız üretim anahtar deponuzu belirtin ve sertifika takma adı.
Geçici bir anahtar deposu oluşturduysanız bunu silin.
Onaltılık dizeyi uygulamanızın paket adına, tek bir boşluk oluşturur.
Birleştirilmiş dizenin SHA-256 toplamını hesaplayın. Mevcut anahtar kelimelerin her birini SHA-256'yı hesaplamadan önce dizenin başındaki veya sonundaki boşluk toplamıdır.
SHA-256 toplamının ikili değerini Base64 olarak kodlayın. Bunun için yapmanız gerekenleri ilk olarak çıkış biçiminden SHA-256 toplamını alır.
Uygulamanızın karma dizesi, base64 kodlu dizenin ilk 11 karakteri karma değerini oluşturur.
Aşağıdaki komut, uygulamanızın üretimindeki karma dizesini hesaplar anahtar deposu:
keytool -exportcert -alias PlayDeploymentCert -keystore MyProductionKeys.keystore | xxd -p | tr -d "[:space:]" | echo -n com.example.myapp `cat` | sha256sum | tr -d "[:space:]-" | xxd -r -p | base64 | cut -c1-11.
Alternatif olarak, AppSignatureHelper ile uygulamanızın karma dizesini alabilirsiniz. sınıfını kullanır. Ancak yardımcı sınıfı kullanırsanız karma dizesini aldıktan sonra bunu uygulamanızdan kaldırdığınızdan emin olun. doğrulama mesajlarınızda istemcide dinamik olarak hesaplanan karma dizeleri oluşturun.
2. Doğrulama mesajını SMS ile gönder
Doğrulama mesajını oluşturduktan sonra, mesajı kullanıcının herhangi bir SMS sistemi kullanarak telefon numarası.
Örneğin, Twilio SMS kullanarak uygulama doğrulama başlıklı makaleyi inceleyin. web sitesine hoş geldiniz.
Kullanıcının cihazı bu mesajı aldığında, mesaj şu adrese yönlendirilir: uygulamasını indirin. Uygulamanız tek seferlik kodu ayıklar ve aşağıdaki işlemler için sunucunuza geri gönderir. doğrulama sürecini tamamlayın.
3. İade edildiğinde tek seferlik kodu doğrulama
Telefon numarası doğrulama sunucusu genellikle istemci uygulamalarından tek seferlik kodlar almak için. Sunucunuz bir uygulamanızdan tek seferlik kod almak için aşağıdakileri yapın:
- Tek seferlik kodun geçerli olduğunu ve süresinin dolmadığını doğrulayın.
- Tek kullanımlık koda bağlanan kullanıcının telefon numarasını tamamladığını kaydedin doğrulama.
- Tek seferlik kodun veritabanı kaydını kaldırın veya başka bir şekilde aynı kod tekrar kullanılamaz.
Kullanıcının doğrulama durumunu kaydedip doğrulama işlemi tamamlandı.