Latihan 1 dari materi Auth Best Practices di Auth — praktek dengan editor kode interaktif, test case otomatis, dan hint terpandu. Langsung jalan di browser.
Lengkapi validatePassword(password) di kode awal, mengikuti panduan NIST SP 800-63B: panjangnya yang menentukan, password yang pernah bocor ditolak, dan gak ada aturan komposisi. Function ini mengembalikan object { valid, errors }. Kode awal sudah punya DAFTAR_BOCOR, contoh kecil daftar password yang pernah bocor.
- Periksa tiga aturan ini berurutan. Tiap aturan yang gagal menambah satu pesan ke array
errors, persis seperti ini:
- panjang kurang dari 8:
"Minimal 8 karakter"
- panjang lebih dari 64:
"Maksimal 64 karakter"
- ada di
DAFTAR_BOCOR, dibandingkan dalam huruf kecil ("ILOVEYOU" juga kena): "Password ini ada di daftar bocor"
valid bernilai true kalau errors kosong, selain itu false.
- Jangan mewajibkan huruf besar, angka, atau simbol.
"semuahurufkecil" dan "12 Maret, hujan deras" itu sah.
Baris-baris console.log di kode awal sudah ada, biarkan begitu. Output-nya harus persis enam baris ini, berurutan:
false ("Ab1!" gak valid)
Minimal 8 karakter
false ("Password" ada di daftar bocor)
Password ini ada di daftar bocor
true ("kopi susu gula aren" valid)
0
Dicek juga: password 64 karakter masih sah dan 65 karakter kena "Maksimal 64 karakter", "qwerty" kena dua pesan (Minimal 8 karakter|Password ini ada di daftar bocor), dan "ILOVEYOU" ditolak sementara "semuahurufkecil" dan "12 Maret, hujan deras" diterima.