Route Middleware di Laravel

Budi Setiawan
3 min readOct 13, 2024

--

Kali ini kita akan membahas sesuatu yang mirip dengan saya yang selalu diapit antara rutinitas dan kekacauan — ya, Anda benar! Kita bakal ngobrolin Route Middleware di Laravel. Jadi, siapkan kopi, camilan, dan serius, jangan sampai tumpah!

Apa Itu Middleware?

Dalam bahasa sederhana, middleware itu adalah “penjaga keamanan” yang duduk di antara route dan request. Bayangkan Anda lagi mau masuk ke rumah teman yang super duper ketat, namanya si Middleware. Sebelum Anda masuk, dia bakal nanya, “Eh, kamu punya izin ga nih?” Atau, “Kamu bawa makanan nggak?” Dan setelah semua tanya jawab yang ribet selesai, baru deh Anda bisa masuk.

Middleware ini berguna untuk mengatur berbagai hal, seperti autentikasi, logging, atau bahkan mengecek apakah Anda bawa snack yang cukup untuk pesta nanti.

Menambahkan Middleware pada Route

Sekarang, kita sudah tahu apa itu middleware. Yuk, kita mulai praktekkan cara menambahkan middleware pada route! Di Laravel, mudah banget. Anda hanya perlu sedikit kode dan alunan musik latar yang ceria.

Mari kita buat middleware sederhana yang memeriksa apakah pengguna sudah login atau belum. Misalnya, kita namakan middleware ini CheckLogin.

Langkah 1: Membuat Middleware

Untuk membuat middleware, buka terminal dan ketik perintah berikut:

php artisan make:middleware CheckLogin

Ini akan bikin file baru di folder app/Http/Middleware/. Buka file itu, dan tambahkan kode berikut:

use Closure;
class CheckLogin
{
public function handle($request, Closure $next)
{
if (!$request->session()->has('user_id')) {
return redirect('/login')->with('error', 'Silakan login terlebih dahulu!');
}
return $next($request);
}
}

Langkah 2: Mendaftarkan Middleware

Setelah middleware dibuat, kita perlu mendaftarkannya. Buka file bootstrap/app.php, dan tambahkan middleware kita ke dalam withMiddleware:

'checklogin' => \App\Http\Middleware\CheckLogin::class,

Langkah 3: Menggunakan Middleware pada Route

Nah, sekarang saatnya menambahkan middleware ini ke route yang diinginkan. Misalnya, kita punya rute ke halaman dashboard yang hanya dapat diakses oleh pengguna yang sudah login. Tambahkan kode berikut ke file routes/web.php:

Route::get('/dashboard', function () {
return 'Selamat datang di Dashboard!';
})->middleware('checklogin');

Dan voila! Siap-siap saja, jika ada pengguna yang belum login, mereka akan dikejar sama si Middleware dan langsung dikembalikan ke halaman login. Memang kejam, tapi demi keamanan, kan? 😄

Penggunaan Middleware Bawaan Laravel

Laravel sudah dilengkapi dengan beberapa middleware bawaan yang sangat berguna. Anda cukup memanggilnya tanpa perlu repot-repot membuat dari nol. Mari kita lihat beberapa middleware bawaan, seperti auth dan guest.

Contoh Penggunaan Middleware Auth

auth adalah middleware yang mengecek apakah pengguna sudah terautentikasi. Mari kita terapkan ini pada route yang berbeda, misalnya untuk halaman profil pengguna.

Route::get('/profile', function () {
return 'Ini adalah halaman profil!';
})->middleware('auth');

Lagi-lagi, jika si pengguna belum login, mereka akan segera disekap, eh, maksud kami, dikembalikan ke halaman login.

Contoh Penggunaan Middleware Guest

Kalau ada auth, sudah pasti ada guest! Middleware ini berguna untuk mencegah pengguna yang sudah login untuk mengakses halaman yang hanya diperuntukkan bagi para tamu. Misalnya, halaman pendaftaran.

Route::get('/register', function () {
return 'Silakan daftar di sini!';
})->middleware('guest');

Jadi, yang sudah terdaftar nggak usah-minimalin tersebut lagi, ya! 😅

Membuat Custom Middleware!

Bukan hanya untuk keamanan dan autentikasi, kita juga bisa bikin fungsi-fungsi konyol seperti mengecek apakah pengguna merasa beruntung atau tidak sebelum memasuki halaman tertentu. Mari kita buat middleware yang lucu bernama CheckLuck!

Langkah 1: Membuat Custom Middleware

Ketikan perintah ini di terminal:

php artisan make:middleware CheckLuck

Buka file yang baru saja dibuat dan tambahkan kode berikut:

use Closure;
class CheckLuck
{
public function handle($request, Closure $next)
{
$luck = rand(0, 1); // Nggak tahu, apakah kamu beruntung atau nggak?
if ($luck == 0) {
return redirect('/unlucky')->with('error', 'Maaf, hari ini bukan harimu!');
}
return $next($request);
}
}

Langkah 2: Mendaftarkan Middleware

Seperti yang sudah kita lakukan sebelumnya, daftarkan middleware di bootstrap/app.php:

'checkluck' => \App\Http\Middleware\CheckLuck::class,

Langkah 3: Menggunakan Middleware di Route

Terakhir, kita pasang middleware ini pada route, misalnya pada halaman undian:

Route::get('/lottery', function () {
return 'Selamat! Kamu menang!';
})->middleware('checkluck');

Siap-siap deh, pengguna bisa jadi merasa beruntung atau tidak setelah mengunjungi halaman ini. Jangan kaget jika tiba-tiba mereka melanggar kebijakan no crying allowed di jalan!

Middleware ini membantu menjaga keamanan aplikasi sekaligus menambah nuansa seru di dalamnya. Ingat, jangan main-main sama middleware, bisa-bisa Anda dipulangkan! 😆

Sudah selesai baca artikelnya? Bagus! Tapi tunggu dulu… tidak lengkap kalau tidak up-grade skill anda! Yuk, cek kelas online saya, biar anda bisa bilang, “Laravel? Gampang banget!” 😄:
- Bangun Aplikasi Laravel Modern Menggunakan React InertiaJS

--

--

Budi Setiawan
Budi Setiawan

No responses yet