Uji Login Tanpa Kata Sandi Tanpa Kekacauan Inbox
Login tanpa kata sandi terlihat mudah dalam sebuah demo. Pengguna memasukkan email. Sebuah magic link tiba. Sesi dimulai.
Di lingkungan staging, alur ini menjadi berantakan. Tautan masuk ke inbox bersama atau alias lama. Hal ini menciptakan gangguan (noise).
Anda harus memperlakukan autentikasi tanpa kata sandi sebagai satu sistem yang utuh. Anda perlu menguji klien JavaScript, backend Node.js, pengiriman email, dan sesi. Jika Anda melewatkan pengujian inbox, Anda mungkin merilis alur yang rusak meskipun pengujian API Anda berhasil.
Kegagalan umum meliputi:
- Backend mengirimkan dua tautan setelah melakukan percobaan ulang (retry).
- Email mengarah ke host yang salah.
- Tautan lama berfungsi lebih lama dari yang seharusnya.
- Frontend menandai pengguna telah masuk sebelum cookie terpasang.
Gunakan inbox yang terisolasi untuk setiap sesi pengujian. Ini mencegah data pengujian bocor ke kotak masuk tim. Gunakan layanan email sekali pakai (disposable email) untuk staging agar setiap sesi tetap terpisah.
Isolasi memudahkan proses debugging. Jika pengujian gagal, Anda seharusnya hanya melihat satu inbox dan satu perjalanan pengguna (user journey). Anda harus tahu persis pesan mana yang berasal dari build yang mana.
Pengujian yang baik memeriksa langkah-langkah ini secara berurutan:
- Permintaan login berhasil tanpa mengungkapkan apakah sebuah akun ada.
- Tepat satu magic link baru tiba.
- Host tautan sesuai dengan domain staging Anda.
- Tautan memulai sesi yang valid.
- Menggunakan kembali tautan yang sama akan gagal.
- Aplikasi memperbarui navigasi tanpa perlu penyegaran (refresh) manual.
Di sisi Node.js, lampirkan correlation ID pada log Anda. Gunakan ID tersebut mulai dari permintaan, pengiriman email, hingga sesi akhir. Ini membantu Anda menemukan bug saat email lambat atau terduplikasi.
Jangan mengganti semua pengujian Anda dengan pengujian email. Gunakan unit test yang cepat untuk logika token dan aturan sesi. Gunakan jalur email untuk membuktikan bahwa pengalaman pengguna yang sebenarnya berfungsi dengan baik.
Daftar periksa sebelum Anda merilis:
- Satu permintaan login hanya membuat satu tautan aktif.
- Email terbaru mudah diurai (parse) di staging.
- Tautan berfungsi pada host yang benar.
- Tautan tidak dapat digunakan kembali.
- Logout dan login kembali membuat token baru yang bersih.
