Langsung ke konten utama

Panduan Praktis Implementasi Fitur Forgot Password di Laravel

Pendahuluan

Bayangin lagi ngerjain fitur sederhana, tapi pas mau handle forgot password malah pusing sendiri karena harus mikirin security dan flow email yang nggak boleh bocor. Jujur, pas awal-awal handle fitur ini, saya sering banget kena komplain user gara-gara token yang kedaluwarsa terlalu cepat atau email notifikasi yang masuk folder spam. Padahal, kalau kita manfaatin ekosistem Laravel dengan benar, fitur ini sebenernya bisa jadi salah satu bagian paling stabil di aplikasi kita.

Tips & Best Practices

  • Di banyak project, biasanya saya mulai dari memisahkan logic pengiriman email ke dalam Job queue. Kita nggak mau user nunggu loading lama cuma gara-gara server smtp lagi lemot.
  • Pengalaman saya, jangan pernah nampilin pesan error yang terlalu spesifik kayak 'Email tidak terdaftar'. Ini bahaya banget buat security, mending pakai pesan generik biar hacker nggak bisa scan user kita.
  • Kalau lagi mantau log, selalu pastikan token password reset itu di-hash. Jangan simpen token mentah-mentah di database, cukup simpen hasil hash-nya aja buat verifikasi.

Contoh Kode

Biasanya saya pakai built-in feature dari Laravel dengan memodifikasi PasswordBroker. Nih, contoh gimana ngerjain custom logic buat handle request reset password:

public function sendResetLink(Request $request) {
    $request->validate(['email' => 'required|email']);
    $status = Password::broker()->sendResetLink($request->only('email'));
    return $status === Password::RESET_LINK_SENT 
        ? back()->with('status', 'Cek email kamu ya!') 
        : back()->withErrors(['email' => 'Gagal ngirim email.']);
}

Variasi Implementasi

Beda project, beda kebutuhan. Kalau aplikasinya super secure, biasanya saya nambahin fitur 'one-time token' yang langsung angus setelah dipake sekali. Tapi, kalau aplikasi internal yang simpel, pake default Laravel Passport atau Fortify itu udah sangat cukup. Pilih yang sesuai sama skala aplikasi, jangan over-engineering kalau emang nggak perlu.

Kesalahan Umum

  1. Lupa ngetes email yang masuk ke spam, padahal usernya nungguin.
  2. Terlalu banyak ngasih info di halaman reset, bikin celah buat enum user.
  3. Nggak nge-set expiration time token di config, jadi tokennya bisa dipake selamanya.
  4. Lupa nambahin throttling di route, nanti endpoint-nya bisa di-brute force orang iseng.
  5. Nggak pake HTTPS, jadinya link reset password yang dikirim lewat email bisa disadap di tengah jalan.

Ringkasan

Intinya, fitur forgot password itu bukan cuma soal ngirim email, tapi soal gimana kita ngebangun kepercayaan user lewat alur yang mulus dan aman. Kalau kita udah paham cara kerja flow Laravel yang 'out-of-the-box', sisanya tinggal soal ngatur experience-nya aja biar user nggak bingung pas mereka lagi panik karena lupa password.

Komentar

Postingan populer dari blog ini

Fungsi lain tombol penerima panggilan di headset

Kegunaan tombol yang berada di headset utamanya adalah untuk menerima panggilan dan pause panggilan. Dan headset itu sendiri, kadang juga digunakan untuk mendengarkan music, digunakan bersama saat main game, supaya suara yang dikeluarkan oleh gadget tidak terlalu keras sehingga mengurangi beban gadget. Dengan mengurangi beban gadget, ada beberapa yang beranggapan kalau itu akan menghemat batere.

Cara Reset Password Database MySQL Menggunakan Laragon

Cara Reset Password Database MySQL Menggunakan Laragon Laragon adalah salah satu lingkungan pengembangan lokal (local development environment) yang populer di antara para pengembang web. Dalam beberapa kasus, mungkin kita perlu mereset password database MySQL pada Laragon jika lupa password atau untuk alasan keamanan tertentu. Berikut adalah langkah-langkah yang dapat kita ikuti untuk melakukan reset password database MySQL menggunakan Laragon:

Apa Itu R dan L di Headset? Ini Dia Perbedaan dan Fungsinya yang Perlu Anda Ketahui

Arti R dan L di Headset: Apa Perbedaannya? Headset adalah alat yang digunakan untuk mendengarkan suara dari sumber audio seperti ponsel, komputer, atau pemutar musik. Headset biasanya terdiri dari dua bagian, yaitu earphone yang dimasukkan ke dalam telinga dan mikrofon yang digunakan untuk berbicara. Pada earphone, kita sering melihat ada tulisan R dan L. Apa arti dan perbedaan dari kedua huruf tersebut?