Pluginify

Masuk Daftar
Home > Blog > Laravel > Middleware Laravel dan Penggunaannya dalam Mengelola Akses

Middleware Laravel dan Penggunaannya dalam Mengelola Akses

Middleware Laravel dan Penggunaannya dalam Mengelola Akses

Middleware Laravel merupakan salah satu komponen penting dalam arsitektur framework Laravel yang berfungsi untuk menangani proses filtering terhadap request HTTP. Dengan middleware, developer dapat mengelola proses autentikasi, logging, serta pengecekan akses tanpa harus menuliskan definisi logika berulang pada setiap controller. Pendekatan ini memberikan fleksibilitas dalam pengendalian alur data serta keamanan dalam suatu aplikasi web.

Selain berfungsi sebagai filter, middleware juga berperan dalam melakukan manipulasi request dan response. Contohnya, aplikasi dapat melakukan pengecekan token autentikasi, memasukkan header tertentu sebelum response dikirim, atau memblokir akses ke endpoint tertentu. Kemampuan ini menjadikan middleware sebagai komponen modular yang memisahkan logika akses dari implementasi fitur inti pada controller.

Apa itu Middleware?

Secara teknis, middleware adalah lapisan perantara yang memproses HTTP request sebelum diteruskan ke controller dan memproses HTTP response sebelum dikirim kembali ke browser.

Fungsi umum middleware antara lain:

  • Mengatur autentikasi pengguna
  • Memvalidasi permission berbasis role
  • Menyuntikkan header atau cookie tertentu
  • Menangani logging aktivitas
  • Menolak atau mengizinkan request ke endpoint tertentu

Middleware Bawaan Laravel

Laravel sudah menyediakan beberapa middleware standar, seperti:

MiddlewareFungsiauthMembatasi akses berdasarkan autentikasiguestMembatasi pengguna yang sudah loginverifiedVerifikasi email sebelum aksesthrottlePembatasan request (rate limiting)signedValidasi URL yang sudah ditandatanganiencryptCookiesEnkripsi cookieTrimStringsMemotong spasi berlebih input

Pengguna tetap dapat membuat middleware custom sesuai kebutuhan proyek.

Membuat Middleware Baru

Untuk membuat middleware, gunakan perintah artisan:

php artisan make:middleware CheckRole

Perintah tersebut akan menghasilkan file di:

app/Http/Middleware/CheckRole.php

Contoh implementasinya:

public function handle($request, Closure $next, $role)
{
    if ($request->user()->role !== $role) {
        abort(403, 'Unauthorized.');
    }

    return $next($request);
}

Middleware di atas bertugas mengecek role user sebelum melanjutkan ke controller.

Mendaftarkan Middleware

Middleware dapat didaftarkan pada file:

app/Http/Kernel.php

Terdapat tiga level pendaftaran:

1. Global Middleware

Akan dijalankan pada semua route

protected $middleware = [
    AppHttpMiddlewareCheckMaintenance::class,
];

2. Route Middleware

Hanya dipakai ketika dipanggil pada route

protected $routeMiddleware = [
    'role' => AppHttpMiddlewareCheckRole::class,
];

3. Middleware Groups

Dapat dipakai pada grouping route seperti API dan Web

protected $middlewareGroups = [
    'web' => [
        AppHttpMiddlewareEncryptCookies::class,
        ...
    ],
    'api' => [
        'throttle:api',
        IlluminateRoutingMiddlewareSubstituteBindings::class,
    ],
];

Menggunakan Middleware dalam Route

Contoh menggunakan middleware role pada route:

Route::get('/admin', function () {
    return 'Halaman Admin';
})->middleware('role:admin');

Middleware juga bisa digunakan pada grouping:

Route::middleware(['auth', 'role:admin'])->group(function () {
    Route::get('/dashboard', function () {
        return 'Dashboard Admin';
    });
});

Middleware dan Response Manipulation

Middleware juga bisa memodifikasi response:

public function handle($request, Closure $next)
{
    $response = $next($request);

    $response->headers->set('X-App-Version', '1.0.0');

    return $response;
}

Contoh di atas menambahkan header X-App-Version pada setiap response.

Studi Kasus Penerapan Middleware

Beberapa kasus penggunaan di aplikasi nyata:

KebutuhanImplementasi MiddlewareProteksi halaman adminCek role userRate limiting APIthrottle middlewareValidasi token APICek parameter tokenLogging aktivitasSimpan request ke logCORSTambah header sebelum response

Dengan penggunaan yang tepat, middleware meningkatkan modularitas dan keamanan aplikasi.

Kesimpulan

Middleware merupakan komponen penting dalam arsitektur Laravel yang memberikan kemampuan filtering dan kontrol terhadap request serta response. Dengan middleware, developer dapat memisahkan logika akses dari implementasi fitur inti, sehingga menghasilkan kode yang lebih rapi, aman, dan mudah dipelihara.

Pemahaman yang baik tentang penggunaan middleware membantu developer membangun sistem autentikasi, validasi akses, serta keamanan HTTP secara terstruktur pada aplikasi Laravel tingkat menengah maupun lanjutan.

Baca Lanjutan: Penerapan Gate dan Policy Laravel untuk Kontrol Akses

Pluginify
Pluginify