Halaman ini diterjemahkan oleh Cloud Translation API.
Switch to English

Lakukan Verifikasi SMS di Server

Untuk memverifikasi nomor telepon secara otomatis, Anda harus menerapkan bagian klien dan server dari alur verifikasi. Dokumen ini menjelaskan cara menerapkan porsi server.

Server verifikasi telepon bertanggung jawab atas tiga tugas:

  1. Membuat pesan verifikasi yang menyertakan kode satu kali dan memiliki format yang diharapkan API Retriever SMS sisi klien
  2. Mengirim pesan verifikasi ke perangkat pengguna
  3. Memverifikasi kode satu kali saat dikirim kembali ke server dan menyelesaikan tugas pasca verifikasi apa pun yang diperlukan backend Anda

Cara spesifik tentang bagaimana aplikasi Anda berinteraksi dengan server terserah Anda. Pendekatan yang umum adalah mengekspos REST API dengan dua titik akhir: satu yang menerima permintaan untuk memverifikasi nomor telepon tertentu dan mengirim pesan verifikasi SMS, dan titik akhir kedua yang menerima kode satu kali dari aplikasi Anda.

1. Buat pesan verifikasi

Saat server Anda menerima permintaan untuk memverifikasi nomor telepon, pertama-tama buat pesan verifikasi yang akan Anda kirim ke perangkat pengguna. Pesan ini harus:

Jika tidak, konten pesan verifikasi dapat berupa apa pun yang Anda pilih. Sangat membantu untuk membuat pesan yang nantinya Anda dapat dengan mudah mengekstrak kode satu kali. Misalnya, pesan verifikasi yang valid mungkin terlihat seperti ini:

Your ExampleApp code is: 123ABC78

FA+9qCX9VSu

Menghasilkan kode satu kali

Anda dapat menerapkan kode satu kali dengan banyak cara, selama kodenya tidak dapat dibaca dan Anda dapat menautkan kode ke pengguna atau nomor telepon saat aplikasi klien mengirimnya kembali ke server Anda. Anda harus membuat kode mudah diketik, untuk mengakomodasi situasi apa pun yang mungkin mengharuskan pengguna untuk mengetik kode secara manual.

Salah satu cara untuk mengimplementasikan kode satu kali adalah dengan menghasilkan angka acak, yang Anda gunakan sebagai kunci dalam tabel database. Misalnya, Anda mungkin memiliki tabel PendingVerifications seperti berikut:

Indo Pengguna Kedaluwarsa
123456789 ... 1234 2017-3-14 1:59

Anda dapat menggunakan ID berenkode base32 sebagai kode satu kali.

Menghitung string hash aplikasi Anda

Layanan Google Play menggunakan string hash untuk menentukan pesan verifikasi mana yang akan dikirim ke aplikasi Anda. String hash dibuat dari nama paket aplikasi Anda dan sertifikat kunci publik aplikasi Anda. Untuk menghasilkan string hash:

  1. Jika Anda menggunakan penandatanganan aplikasi oleh Google Play , unduh sertifikat penandatanganan aplikasi Anda ( deployment_cert.der ) dari bagian Penandatanganan aplikasi di konsol Google Play .

    Kemudian, impor sertifikat penandatanganan aplikasi ke penyimpanan kunci sementara:

    keytool -importcert -file deployment_cert.der -keystore temporary.keystore -alias PlayDeploymentCert
    

    Jika Anda menandatangani APK secara langsung, lewati langkah ini.

  2. Dapatkan sertifikat penandatanganan aplikasi Anda — yang Anda impor di atas atau yang Anda gunakan untuk menandatangani APK secara langsung — sebagai string heksa huruf kecil.

    Misalnya, untuk mendapatkan string hex dari keystore sementara yang dibuat di atas, ketik perintah berikut:

    keytool -exportcert -keystore temporary.keystore -alias PlayDeploymentCert | xxd -p | tr -d "[:space:]"
    

    Jika Anda menandatangani APK secara langsung, tentukan keystore produksi dan alias sertifikat Anda.

  3. Jika Anda membuat keystore sementara, hapuslah.

  4. Tambahkan string hex ke nama paket aplikasi Anda, dipisahkan oleh satu spasi.

  5. Hitung jumlah SHA-256 dari string gabungan. Pastikan untuk menghapus spasi kosong di depan atau di belakang dari string sebelum menghitung jumlah SHA-256.

  6. Base64-menyandikan nilai biner dari jumlah SHA-256. Anda mungkin perlu mendekode jumlah SHA-256 dari format keluarannya terlebih dahulu.

  7. String hash aplikasi Anda adalah 11 karakter pertama dari hash berenkode base64.

Perintah berikut menghitung string hash dari keystore produksi aplikasi Anda:

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

Atau, Anda bisa mendapatkan string hash aplikasi Anda dengan kelas AppSignatureHelper dari aplikasi contoh SMS retriever. Namun, jika Anda menggunakan kelas helper, pastikan untuk menghapusnya dari aplikasi Anda setelah Anda mendapatkan string hash. Jangan gunakan string hash yang dihitung secara dinamis pada klien dalam pesan verifikasi Anda.

2. Kirim pesan verifikasi melalui SMS

Setelah Anda membuat pesan verifikasi, kirim pesan ke nomor telepon pengguna menggunakan sistem SMS apa pun.

Misalnya, lihat Verifikasi aplikasi menggunakan Twilio SMS di situs pengembang Twilio.

Saat perangkat pengguna menerima pesan ini, pesan tersebut diarahkan ke aplikasi Anda. Aplikasi Anda mengekstrak kode satu kali dan mengirimkannya kembali ke server Anda untuk menyelesaikan proses verifikasi.

3. Verifikasi kode satu kali ketika dikembalikan

Server verifikasi nomor telepon biasanya memiliki titik akhir kedua yang digunakannya untuk menerima kembali kode satu kali dari aplikasi klien. Saat server Anda menerima kode satu kali dari aplikasi Anda pada titik akhir ini, lakukan hal berikut:

  1. Pastikan kode satu kali valid dan tidak kedaluwarsa.
  2. Catat bahwa pengguna yang ditautkan ke kode satu kali telah menyelesaikan verifikasi nomor telepon.
  3. Hapus catatan database kode satu kali, atau dengan cara lain memastikan bahwa kode yang sama tidak dapat digunakan lagi.

Saat Anda merekam status verifikasi pengguna dan menghapus kode satu kali dari database Anda, verifikasi selesai.