Kenapa Validasi Kepemilikan Nomor Itu Penting Banget di Auth
Pahami mengapa validasi format nomor tidak cukup dan kenapa bukti kepemilikan nomor via WhatsApp dan Telegram penting untuk keamanan auth.

Nomor Telepon Bukan Sekadar Field Kontak
Dalam flow autentikasi modern, nomor telepon sering dipakai sebagai identifier, recovery method, dan sinyal risiko. Karena itu, yang penting bukan hanya apakah format nomor valid, tetapi apakah pengguna yang sedang login benar-benar memiliki akses ke nomor tersebut.
Validasi kepemilikan nomor menjawab pertanyaan inti: apakah user yang mengklaim nomor ini bisa membuktikan kontrol atas channel resmi yang terhubung ke nomor tersebut? Tanpa bukti ini, aplikasi mudah menerima data palsu, nomor orang lain, atau nomor yang tidak lagi aktif.
Risiko Jika Hanya Validasi Format Nomor
Akun Terhubung ke Nomor Orang Lain
User bisa salah ketik atau sengaja memasukkan nomor pihak lain. Akibatnya, recovery dan notifikasi keamanan dapat terkirim ke orang yang salah.
Lead Berkualitas Rendah
Form signup bisa dipenuhi nomor acak yang terlihat valid secara format, tetapi tidak pernah bisa dipakai untuk login atau follow-up.
Fraud dan Abuse Lebih Sulit Difilter
Jika aplikasi hanya menyimpan string nomor tanpa bukti kepemilikan, bot lebih mudah membuat akun massal menggunakan data palsu.
Validasi Format vs Validasi Kepemilikan
| Aspek | Validasi Format Saja | Validasi Kepemilikan Nomor |
|---|---|---|
| Yang Dibuktikan | Nomor terlihat seperti nomor telepon | User benar-benar mengontrol channel yang terhubung ke nomor itu |
| Kegunaan untuk Auth | Lemah: hanya cocok untuk sanitasi input | Kuat: bisa dipakai untuk login, signup, recovery, dan step-up auth |
| Risiko Typo | Tetap tinggi | Rendah karena nomor berasal dari interaksi WhatsApp/Telegram resmi |
| Audit Trail | Hanya punya string nomor dari form | Punya request_id, channel, timestamp, dan payload webhook terverifikasi |
Bagaimana LessOTP Membuktikan Kepemilikan Nomor
LessOTP menggunakan inbound authentication agar bukti kepemilikan nomor datang dari tindakan pengguna di channel pesan resmi:
- WhatsApp: user mengirim `/START {{unique_code}}` dari nomor WhatsApp aktif melalui jalur Official WhatsApp API Business Partner Kirimdev.
- Telegram: user membuka bot, mengirim `/start {{unique_code}}`, lalu membagikan nomor melalui tombol resmi Share phone number. LessOTP menolak contact jika `contact.user_id` tidak cocok dengan `message.from.id`.
- Strict Mode: nomor yang sudah ada di database wajib cocok dengan nomor inbound yang terbukti.
- Frictionless Mode: nomor terverifikasi dari inbound dipakai untuk membuat akun baru tanpa input nomor manual.
Pastikan nomor user benar-benar dimiliki, bukan sekadar valid formatnya
Coba flow LessOTP di staging untuk melihat bagaimana request_id, channel, phone_number, dan signed webhook bekerja bersama.
Uji Validasi Nomor di Staging