Menambahkan Reset Password Pada Laravel

Pada artikel sebelumnya, aku telah membahas mengenai cara menggunakan AdminLTE di Laravel yang di situ terdapat fitur untuk membuat autentikasi user. Namun sayangnya, ada satu fitur yang belum berjalan dengan sempurna yaitu fitur untuk reset password. Masalh yang kuhadapi saat ini adalah sebagai berikut:

  • Tabel untuk reset password belum tersedia
  • Konfigurasi email untuk mengirim konfirmasi reset password belum tepat

Membuat Tabel Untuk Reset Password

Langkah untuk membuat tabel reset password adalah sebagai berikut:

  1. Buat sebuah file migrasi menggunakan command di bawah ini
    php artisan make:migration create_password_resets_table
  2. ganti kode di dalam fungsi public function up() menjadi di bawah ini:
            Schema::create('password_resets', function (Blueprint $table) {
                $table->string('email')->index();
                $table->string('token')->index();
                $table->timestamp('created_at');
            });
  3. jalankan command di bawah ini untuk membuat tabel sesuai yang telah kita definisikan pada langkah nomor 2
    php artisan migrate

Konfigurasi Layanan Pengiriman Email

Pada kesempatan kali ini, aku menggunakan layanan Mailgun. Setelah konfigurasi domain selesai dilakukan di Mailgun maka langkah selanjutnya adalah menambahkan konfigurasi smpt Mailgun ke file .env yang berada di root project Laravel.

Kode yang perlu ditambahkan/pengganti konfigurasi email adalah seperti di bawah ini:

MAIL_DRIVER=smtp
MAIL_HOST=smtp.mailgun.org
MAIL_PORT=587
MAIL_USERNAME=USERNAME_POSTMASTER
MAIL_PASSWORD=PASSWORD_POSTMASTER
MAIL_FROM_NAME="Nama Pengirim"
[email protected]
[email protected]
MAILGUN_SCREET=API_KEY_MAAILGUN

Menguji Reset Password

Setelah tabel reset password dan konfigurasi SMPT mailgun berhasil dilakukan maka langkah selanjutnya adalah menguji apakah yang dilakukan tersebut sudah benar atau tidak. langkah untuk menguji adalah sebagai berikut.

  1. klik menu lupa password di halaman login atau arahkan browser ke http://localhost/password/reset atau domain.com/password/reset
  2. Masukkan email yang sudah terdaftar di dalam sistem
  3. Klik tombol kirim link reset password
  4. Jika kamu menerima email yang berisi link konfirmasi reset password coba diklik. Jika diarahkan ke halaman pembuatan password baru maka konfigurasi yang dilakukan diatas sudah benar.

Semoga bermanfaat.

Leave a Comment