Langsung ke konten utama

Cara Implementasi Auto Logout di Laravel dengan Custom Middleware

Pendahuluan

Pernah nggak kepikiran, kenapa Laravel terasa begitu fleksibel sampai-sampai kita bisa ngatur session user sesuka hati? Di project sistem informasi perbankan atau dashboard admin yang sensitif, client biasanya rewel banget soal keamanan, terutama soal user yang lupa logout setelah ninggalin laptop. Saya dulu sering banget dapet request 'tolong dong, user otomatis keluar kalau sudah 15 menit nggak ngapa-ngapain', dan setelah coba-coba, cara paling elegan memang pakai middleware custom daripada sekadar setting session di config.

Tips & Best Practices

  • Di banyak project, biasanya saya mulai dari memisahkan logika pengecekan waktu agar tidak bercampur dengan middleware autentikasi bawaan Laravel, biar maintenance-nya lebih enak.
  • Setiap kali handle session, saya selalu pastikan ngecek apakah user memang sedang login dulu, karena nge-cek session yang kosong berulang-ulang cuma bakal bikin resource server kebuang percuma.
  • Kalau sistem butuh ketelitian tinggi, jangan lupa update timestamp terakhir di setiap request, biasanya saya taruh di base controller biar nggak usah manual satu per satu di tiap route.

Contoh Kode

Middleware ini bakal ngecek kapan terakhir user beraktivitas dibandingin sama waktu sekarang:

public function handle($request, Closure $next) { $lastActivity = session('last_activity'); if ($lastActivity && (time() - $lastActivity > 900)) { Auth::logout(); session()->forget('last_activity'); return redirect('/login')->with('error', 'Sesi anda telah berakhir.'); } session(['last_activity' => time()]); return $next($request); }

Variasi Implementasi

Kita bisa pilih dua jalur. Jalur pertama pakai session file bawaan, yang simpel dan cocok buat aplikasi skala kecil. Jalur kedua, kalau user-nya jutaan, saya sarankan pakai Redis. Kenapa? Karena read/write session ke disk terus-menerus bisa bikin server I/O jadi botleneck. Pakai Redis jauh lebih ngebut buat nanganin expired session secara real-time.

Kesalahan Umum

  • Lupa daftarin middleware di kernel, alhasil kodingan kita nggak pernah keeksekusi sama sekali.
  • Set durasi terlalu pendek sampai user ngetik form pun sesi-nya udah keburu mati, ini bikin user frustrasi.
  • Nge-logout paksa tanpa ngasih notifikasi, jadi user bingung pas tiba-tiba balik ke halaman login.
  • Lupa nge-clear session lama saat logout, yang kadang bikin data sisa masih nyangkut.
  • Terlalu bergantung pada client-side timer (JS) doang, padahal user yang nakal bisa matiin JS-nya dan bypass aturan main kita.

Ringkasan

Bikin auto logout itu bukan cuma soal ngapus session, tapi soal ngerti kenyamanan user sambil tetap ngejaga pintu masuk aplikasi kita tetep aman. Dengan custom middleware, kita punya kontrol penuh kapan dan gimana user harus dipaksa keluar. Intinya, selalu validasi di sisi server dan jangan pernah percaya sepenuhnya sama apa yang terjadi di browser.

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?