Middleware di Laravel: Panduan Lengkap

Apa Itu Middleware?
Middleware adalah lapisan pemrosesan request sebelum mencapai controller dalam Laravel. Middleware digunakan untuk melakukan filter, autentikasi, atau modifikasi request dan response.
Mengapa Middleware Penting?
Middleware memungkinkan kita untuk mengontrol alur request dan menambahkan fitur keamanan seperti autentikasi, logging, dan validasi sebelum masuk ke controller.
Bagaimana Middleware Bekerja di Laravel?
Saat request masuk ke aplikasi Laravel, request tersebut diproses oleh middleware sebelum dikirim ke controller yang sesuai.
Membuat Middleware di Laravel
Membuat Middleware dengan Artisan Command
Buat middleware baru menggunakan perintah:
php artisan make:middleware CekAdmin
Struktur Middleware di Laravel
Middleware yang dibuat akan berada di folder app/Http/Middleware/
.
Contoh Middleware Sederhana
Berikut contoh middleware yang hanya mengizinkan akses jika user adalah admin:
public function handle($request, Closure $next)
{
if (auth()->user() && auth()->user()->role !== 'admin') {
return redirect('/home');
}
return $next($request);
}
Menggunakan Middleware dalam Aplikasi
Mendaftarkan Middleware di Kernel
Tambahkan middleware ke app/Http/Kernel.php
:
protected $routeMiddleware = [
'admin' => \App\Http\Middleware\CekAdmin::class,
];
Middleware Global vs Middleware Route
- Global Middleware: Dijalankan di semua request
- Route Middleware: Hanya diterapkan pada route tertentu
Middleware dengan Parameter
Middleware bisa menerima parameter:
Route::get('/dashboard', 'DashboardController@index')->middleware('role:admin');
Middleware Bawaan di Laravel
Authentication Middleware
Digunakan untuk memastikan user telah login:
Route::get('/profile', 'UserController@profile')->middleware('auth');
Middleware Throttle untuk Rate Limiting
Digunakan untuk membatasi jumlah request:
Route::middleware('throttle:60,1')->get('/api/data', 'ApiController@index');
Middleware CORS untuk API
Digunakan untuk mengizinkan akses lintas domain pada API.
Advanced Middleware di Laravel
Middleware untuk Manipulasi Response
Middleware juga bisa mengubah response sebelum dikirim ke client.
Middleware dengan Dependency Injection
Middleware bisa menerima service dari Laravel Container:
public function __construct(Logger $logger)
{
$this->logger = $logger;
}
Middleware untuk Logging dan Debugging
Kita bisa menggunakan middleware untuk mencatat log request dan response.
Kesimpulan
Middleware di Laravel sangat penting untuk mengelola request dan memastikan keamanan aplikasi. Dengan memahami konsep middleware, kita bisa membangun aplikasi yang lebih aman dan efisien.
FAQ
1. Apa itu Middleware di Laravel?
Middleware adalah lapisan filter request sebelum masuk ke controller.
2. Bagaimana cara membuat middleware di Laravel?
Gunakan perintah php artisan make:middleware NamaMiddleware
.
3. Apa perbedaan Middleware Global dan Middleware Route?
Middleware Global berjalan di semua request, sedangkan Middleware Route hanya diterapkan pada route tertentu.
4. Bagaimana cara menambahkan Middleware ke route?
Gunakan ->middleware('nama_middleware')
saat mendefinisikan route.
5. Apakah Middleware bisa mengubah response?
Ya, Middleware bisa memodifikasi response sebelum dikirim ke client.
Itulah panduan lengkap Middleware di Laravel! 🚀
Posting Komentar