PRD - Password Reset Menggunakan NIK dan WhatsApp OTP


1. Pendahuluan
1.1 Latar Belakang

Saat ini fitur Reset Password pada aplikasi SIAD masih menggunakan mekanisme bawaan Laravel yang mengirimkan tautan pemulihan kata sandi melalui email. Mekanisme tersebut dinilai kurang sesuai dengan kebutuhan operasional Desa Siofa Banua karena sebagian besar pengguna lebih aktif menggunakan WhatsApp dibandingkan email, bahkan tidak sedikit pengguna yang tidak lagi mengingat alamat email yang digunakan saat registrasi.

Di sisi lain, seluruh warga yang memiliki akun pada aplikasi SIAD telah terhubung dengan data kependudukan yang memiliki Nomor Induk Kependudukan (NIK) sebagai identitas unik. Oleh karena itu, mekanisme reset password akan diubah menggunakan NIK sebagai identitas pencarian akun dan OTP (One-Time Password) melalui WhatsApp sebagai media verifikasi.

Perubahan ini bertujuan untuk meningkatkan kemudahan penggunaan tanpa mengurangi aspek keamanan sistem.

2. Tujuan

Pengembangan fitur ini bertujuan untuk:

Menggantikan mekanisme reset password berbasis email.
Menggunakan NIK sebagai identitas utama dalam proses reset password.
Menggunakan OTP WhatsApp sebagai metode verifikasi kepemilikan akun.
Mempermudah warga melakukan pemulihan akun.
Menjaga keamanan proses penggantian kata sandi.
3. Ruang Lingkup

Fitur yang dikembangkan meliputi:

Halaman Lupa Kata Sandi
Validasi akun menggunakan NIK
Pengiriman OTP melalui WhatsApp
Verifikasi OTP
Pembuatan kata sandi baru
Pencatatan aktivitas reset password

Fitur yang tidak termasuk dalam pengembangan ini:

Registrasi akun
Login pengguna
Perubahan nomor WhatsApp
Verifikasi identitas kependudukan
Manajemen akun Administrator

Perubahan nomor WhatsApp tetap dilakukan melalui prosedur administrasi desa dan berada di luar ruang lingkup fitur ini.

4. Business Rules
BR-01

Reset password menggunakan NIK sebagai identitas utama.

BR-02

Nomor WhatsApp digunakan hanya sebagai media pengiriman OTP.

BR-03

Nomor WhatsApp diambil dari database dan tidak dimasukkan kembali oleh pengguna.

BR-04

Satu nomor WhatsApp dapat digunakan oleh lebih dari satu akun.

BR-05

OTP hanya dikirim setelah NIK berhasil ditemukan.

BR-06

OTP hanya berlaku selama 5 menit.

BR-07

OTP hanya dapat digunakan satu kali.

BR-08

Apabila pengguna salah memasukkan OTP sebanyak 3 kali, OTP dinyatakan tidak berlaku dan pengguna harus meminta OTP baru.

BR-09

Password hanya dapat diubah setelah OTP berhasil diverifikasi.

BR-10

Password baru wajib disimpan menggunakan mekanisme hashing Laravel.

BR-11

Apabila nomor WhatsApp yang ditampilkan sudah tidak aktif, pengguna diarahkan untuk menghubungi petugas desa guna memperbarui nomor WhatsApp yang terdaftar.

Perubahan nomor WhatsApp tidak dilakukan melalui halaman Reset Password.

5. Alur Sistem (User Flow)
5.1 Alur Normal
Pengguna
      │
      ▼
Klik "Lupa Kata Sandi"
      │
      ▼
Masukkan NIK
      │
      ▼
Sistem mencari data penduduk
      │
      ▼
Apakah akun ditemukan?
      │
 ┌────┴─────┐
 │          │
Tidak      Ya
 │          │
 ▼          ▼
Pesan     Tampilkan
Error     Nama
           Nomor WhatsApp (disamarkan)
           │
           ▼
Apakah nomor masih aktif?
           │
     ┌─────┴─────┐
     │           │
    Ya        Tidak
     │           │
     ▼           ▼
 Kirim OTP    Informasi untuk
 via WhatsApp menghubungi
              petugas desa
     │
     ▼
Masukkan OTP
     │
     ▼
OTP Valid?
     │
 ┌───┴────┐
 │        │
Tidak    Ya
 │        │
 ▼        ▼
Error   Form Password Baru
            │
            ▼
     Password Berhasil Diubah
            │
            ▼
          Login
6. Keputusan Arsitektur

Sebagai dasar implementasi ditetapkan keputusan berikut:

No	Keputusan
1	Reset Password tidak lagi menggunakan email.
2	NIK menjadi identitas utama proses reset password.
3	WhatsApp digunakan sebagai media pengiriman OTP.
4	Nomor WhatsApp tidak dapat diubah melalui fitur Reset Password.
5	Fitur email reset password akan dihapus setelah implementasi OTP selesai dan stabil