Latihan 1 dari materi Password Hashing & Sessions di PHP — praktek dengan editor kode interaktif, test case otomatis, dan hint terpandu. Langsung jalan di browser.
Simulasikan alur login. Starter-nya sudah punya $users berisi satu akun, [email protected], yang password-nya disimpan sebagai password_hash("rahasia", PASSWORD_BCRYPT), dan dua baris echo login(...) di bawah. Biarkan semuanya, lengkapi fungsi login($users, $email, $password).
- Telusuri
$users dan cari akun yang email-nya sama. Kalau gak ada sama sekali, kembalikan User tidak ditemukan.
- Kalau akunnya ada, cocokkan password dengan
password_verify($password, $user["password"]), bukan dengan ===.
- Kembalikan
Login berhasil kalau cocok, atau Password salah kalau gak.
Dua echo di starter harus menulis:
Login berhasil
Password salah
Penilai juga menjalankan login($users, "[email protected]", "rahasia") dan mengharapkan User tidak ditemukan, lalu membuat akun baru dengan password_hash("baru", PASSWORD_DEFAULT) dan mengharapkan login dengan baru berhasil. Hash-nya hash bcrypt asli: coba echo $users[0]["password"];, hasilnya diawali $2y$12$ dan berubah tiap kali dijalankan, karena salt-nya acak. (Di halaman login sungguhan, dua kegagalan ini dijawab dengan kalimat yang sama; di sini dipisah supaya ketiga cabangnya bisa diperiksa.)