Latihan 1: Auth Best Practices — Auth

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.

  1. Periksa tiga aturan ini berurutan. Tiap aturan yang gagal menambah satu pesan ke array errors, persis seperti ini:
    1. panjang kurang dari 8: "Minimal 8 karakter"
    2. panjang lebih dari 64: "Maksimal 64 karakter"
    3. ada di DAFTAR_BOCOR, dibandingkan dalam huruf kecil ("ILOVEYOU" juga kena): "Password ini ada di daftar bocor"
  2. valid bernilai true kalau errors kosong, selain itu false.
  3. 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:

  1. false ("Ab1!" gak valid)
  2. Minimal 8 karakter
  3. false ("Password" ada di daftar bocor)
  4. Password ini ada di daftar bocor
  5. true ("kopi susu gula aren" valid)
  6. 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.

Hint