Middleware di Laravel adalah lapisan perantara yang menangani permintaan HTTP yang masuk dan keluar dari aplikasi. Middleware berfungsi untuk memfilter atau memodifikasi permintaan dan respons, seperti memeriksa autentikasi pengguna, memverifikasi izin, menangani sesi, dan banyak lagi. Middleware dapat dipasang pada rute, grup rute, atau seluruh aplikasi.
1. Membuat Middleware
Untuk membuat middleware di Laravel, gunakan perintah artisan:
bashCopy codephp artisan make:middleware CheckAge
Ini akan membuat file middleware baru di app/Http/Middleware/CheckAge.php.
Contoh Middleware:
phpCopy code// app/Http/Middleware/CheckAge.php
namespace App\Http\Middleware;
use Closure;
class CheckAge
{
public function handle($request, Closure $next)
{
if ($request->age < 18) {
return redirect('home');
}
return $next($request);
}
}
Middleware di atas memeriksa apakah usia pengguna lebih kecil dari 18. Jika iya, pengguna akan diarahkan ke halaman home.
2. Mendaftarkan Middleware
Setelah membuat middleware, Anda perlu mendaftarkannya agar dapat digunakan. Daftarkan middleware di app/Http/Kernel.php.
- Middleware Global: Menangani semua permintaan aplikasi.
- Middleware Grup: Menangani permintaan untuk grup tertentu (misalnya
web,api). - Middleware Rute: Didaftarkan untuk digunakan pada rute tertentu.
Contoh mendaftarkan middleware:
phpCopy code// app/Http/Kernel.php
protected $routeMiddleware = [
'age' => \App\Http\Middleware\CheckAge::class,
];
3. Menggunakan Middleware
Setelah middleware didaftarkan, Anda bisa menggunakannya di rute atau grup rute.
- Menggunakan di Rute:phpCopy code
Route::get('profile', function () { // Halaman profil })->middleware('age'); - Menggunakan di Grup Rute:phpCopy code
Route::middleware(['age'])->group(function () { Route::get('profile', function () { // Halaman profil }); Route::get('settings', function () { // Halaman pengaturan }); });
4. Jenis-jenis Middleware di Laravel
- Autentikasi: Middleware seperti
authuntuk memastikan pengguna sudah login. - Pembatasan Akses: Middleware seperti
canuntuk memverifikasi hak akses pengguna. - Pengaturan CORS: Untuk menangani permintaan dari domain lain.
- Pengaturan Rate Limiting: Middleware untuk membatasi jumlah permintaan dari klien dalam jangka waktu tertentu.
5. Middleware yang Sudah Ada di Laravel
Laravel menyediakan berbagai middleware bawaan, seperti:
auth: Mengecek apakah pengguna sudah terautentikasi.guest: Memeriksa apakah pengguna belum login.verified: Memeriksa apakah pengguna sudah memverifikasi email mereka.throttle: Pembatasan jumlah permintaan untuk melindungi aplikasi dari serangan DDoS.
6. Middleware Terminable
Middleware yang bersifat terminable dapat mengubah respons setelah aplikasi mengirim respons ke pengguna. Untuk membuat middleware terminable, implementasikan metode terminate() di dalam kelas middleware.
Contoh:
phpCopy codepublic function terminate($request, $response)
{
// Lakukan sesuatu setelah respons dikirim
}
Ringkasan:
- Middleware digunakan untuk memfilter atau memodifikasi permintaan HTTP dan respons.
- Pendaftaran middleware dilakukan di
app/Http/Kernel.php. - Middleware dapat digunakan di rute individual, grup rute, atau seluruh aplikasi.
- Laravel sudah menyediakan middleware seperti
auth,guest,throttle, dll., untuk autentikasi, pembatasan akses, dan lainnya.
Referensi Lainnya :
- https://medium.com/dotlocal/belajar-laravel-chapter-12-tutorial-middleware-afb21dfacd8e
- https://www.codepolitan.com/blog/protect-menggunakan-middleware-laravel-59fab97ba55e8/?authuser=0