Laravel 12 CRUD #12: Membatasi Halaman Siswa Hanya untuk yang Login

Laravel 12 CRUD
#12 Membatasi Halaman Siswa Hanya untuk yang Login

🛡️ Pasang middleware auth • Halaman CRUD jadi aman!
🛡️ Sekarang kita buat halaman CRUD hanya bisa diakses oleh pengguna yang sudah login!
Saat ini, siapa pun bisa mengakses halaman daftar siswa, tambah, edit, dan hapus. Padahal seharusnya hanya pengguna yang sudah login yang boleh mengelola data.
Laravel punya fitur bernama middleware yang berfungsi seperti "penjaga pintu". Kita akan memasang middleware auth agar hanya yang sudah login yang bisa lewat. Yuk mulai! 🚪🔐

Langkah 1: Apa Itu Middleware?

🔍 Middleware adalah lapisan yang memeriksa permintaan (request) sebelum sampai ke controller. Bayangkan seperti satpam di depan pintu masuk. Jika kamu sudah login (memiliki KTP), satpam akan mempersilakan masuk. Jika belum login, satpam akan menyuruh kamu login dulu.

Laravel sudah menyediakan middleware auth yang siap pakai. Kita tinggal menempelkannya ke rute-rute yang ingin dilindungi.

Langkah 2: Melindungi Rute Siswa dengan Middleware

1 Buka file rute routes/web.php. Saat ini kita punya baris:

Route::resource('siswa', SiswaController::class);

Kita akan mengelompokkan rute siswa agar hanya bisa diakses oleh pengguna yang sudah login. Ubah menjadi:

Route::middleware(['auth'])->group(function () { Route::resource('siswa', SiswaController::class); });

Penjelasan:

  • middleware(['auth']) → semua rute di dalam grup ini akan melewati middleware auth.
  • group(function () { ... }) → mengelompokkan beberapa rute agar memiliki middleware yang sama.
  • Sekarang semua rute CRUD siswa (index, create, store, edit, update, destroy) akan dilindungi.
💡 Alternatif: Kamu juga bisa menambahkan middleware langsung di controller dengan method __construct(), tapi cara di atas lebih mudah dan jelas.

Langkah 3: Uji Coba - Akses Tanpa Login

2 Sekarang kita uji. Pastikan kamu sudah logout (jika sebelumnya login).

  • Jalankan server: php artisan serve
  • Buka browser, akses http://localhost:8000/siswa
  • Karena belum login, kamu akan otomatis diarahkan ke halaman login (http://localhost:8000/login).

🎉 Berhasil! Middleware auth bekerja. Sekarang coba login dengan akun yang sudah didaftarkan. Setelah login, kamu akan diarahkan ke halaman dashboard. Akses lagi http://localhost:8000/siswa, sekarang halaman daftar siswa akan muncul karena kamu sudah login.

Catatan: Setelah login, Laravel akan mengingatmu dan kamu bisa mengakses semua halaman siswa. Coba cek juga halaman tambah, edit, dan hapus. Semua aman!

Langkah 4: Menambahkan Menu Navigasi (Opsional)

3 Agar pengguna mudah mengakses halaman siswa, kita bisa tambahkan link di menu dashboard. Buka resources/views/dashboard.blade.php atau file layout yang digunakan Breeze. Tambahkan link ke halaman siswa:

<a href="{{ route('siswa.index') }}" class="...">Daftar Siswa</a>

Kamu bisa menambahkannya di dalam resources/views/layouts/navigation.blade.php jika ingin muncul di semua halaman. Namun untuk kesederhanaan, kita bisa meletakkan link di halaman dashboard saja.

📌 Jika kamu ingin menambahkan link di navigation, carilah bagian yang menampilkan menu navigasi, lalu tambahkan:
<x-nav-link :href="route('siswa.index')" :active="request()->routeIs('siswa.*')"> {{ __('Daftar Siswa') }} </x-nav-link>

Langkah 5: Memahami Cara Kerja Middleware auth

💡 Middleware auth melakukan pengecekan sederhana:

  • Jika pengguna sudah login (ada session), maka permintaan dilanjutkan ke controller.
  • Jika belum login, pengguna akan diarahkan ke halaman login (redirect ke login).

Kamu bisa melihat file middleware auth di app/Http/Middleware/Authenticate.php jika penasaran.

🎯 Selamat! Halaman CRUD siswa sekarang sudah aman. Hanya pengguna yang login yang bisa melihat dan mengelola data. Kamu telah berhasil melindungi aplikasi dari pengunjung yang tidak bertanggung jawab. Hebat! 💪

Ringkasan Langkah

  • ✅ Buka routes/web.php
  • ✅ Bungkus rute siswa dengan grup middleware: Route::middleware(['auth'])->group(...)
  • ✅ Uji coba: akses halaman siswa tanpa login → diarahkan ke login
  • ✅ Login → bisa mengakses halaman siswa
  • ✅ (Opsional) Tambahkan link menu di layout/dashboard

📌 Ingat: Middleware auth adalah standar Laravel. Kamu bisa menggunakannya untuk melindungi halaman mana pun dengan mudah.

(Link akan aktif saat artikel sebelumnya dan selanjutnya terbit)

📘 Laravel 12 CRUD untuk Sekolah Dasar • #12 Membatasi Halaman Siswa Hanya untuk yang Login • 🔒 Aman!
Lebih baru Lebih lama

نموذج الاتصال