Cara Membuat dan Menggunakan Middleware di Laravel (Contoh Cek Role)

Middleware adalah lapisan yang menyaring request sebelum masuk ke controller โ€” cocok untuk mengecek apakah user sudah login, punya role tertentu, atau request memenuhi syarat. Arti...

Cara Membuat dan Menggunakan Middleware di Laravel (Contoh Cek Role)

Middleware adalah lapisan yang menyaring request sebelum masuk ke controller โ€” cocok untuk mengecek apakah user sudah login, punya role tertentu, atau request memenuhi syarat. Artikel ini menunjukkan cara membuat middleware sendiri, dengan contoh cek role admin.

Konsep Middleware

Bayangkan middleware sebagai "penjaga pintu". Setiap request harus melewatinya dulu. Jika lolos, request diteruskan; jika tidak, request ditolak atau dialihkan.

Langkah 1: Membuat Middleware

php artisan make:middleware CheckAdmin

File baru muncul di app/Http/Middleware/CheckAdmin.php. Isi logikanya di method handle():

public function handle($request, Closure $next)
{
    if (auth()->check() && auth()->user()->role === 'admin') {
        return $next($request); // lolos, lanjutkan
    }

    abort(403, 'Akses ditolak'); // tolak
}

Langkah 2: Mendaftarkan Middleware

Daftarkan alias di app/Http/Kernel.php pada array $middlewareAliases (atau $routeMiddleware di versi lama):

'admin' => \App\Http\Middleware\CheckAdmin::class,

Langkah 3: Memakainya di Route

Terapkan middleware ke route atau grup route:

Route::get('/dashboard', [AdminController::class, 'index'])
    ->middleware('admin');

// atau untuk beberapa route sekaligus
Route::middleware(['auth', 'admin'])->group(function () {
    Route::get('/admin/users', [UserController::class, 'index']);
    Route::get('/admin/settings', [SettingController::class, 'index']);
});

Middleware dengan Parameter

Middleware bisa menerima parameter, misalnya untuk mengecek beberapa role:

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

Memakainya:

Route::get('/editor')->middleware('role:editor');

Middleware Global vs Route

Middleware bisa diterapkan secara global (semua request) atau per-route. Untuk pengecekan seperti role, gunakan per-route agar tidak membebani seluruh aplikasi.

Kesimpulan

Middleware membuat logika penyaringan request jadi rapi dan bisa dipakai ulang: buat dengan make:middleware, daftarkan alias di Kernel, lalu pasang di route. Pola ini ideal untuk otorisasi berbasis role. Untuk membangun sistem login-nya terlebih dulu, lihat panduan kami tentang membuat login dan register dengan Laravel Breeze.

middleware laravel cara membuat middleware cek role laravel middleware admin laravel filter request laravel
Bagikan artikel
Kembali

Komentar (0)

Punya pertanyaan atau tambahan? Tulis di bawah โ€” tak perlu login.

Membalas komentarโ€ฆ batal

Belum ada komentar. Jadilah yang pertama!

๐Ÿš€ Partner Recommendation

Butuh Source Code & Aplikasi Premium?

Download aplikasi Laravel, POS, Sekolah, Klinik, ERP, dan source code siap pakai di GudangCode.

GudangCode
  • โœ” Source Code Premium
  • โœ” Sistem Siap Pakai
  • โœ” Lifetime Update
  • โœ” Membership Lifetime
  • โœ” Update Aplikasi Harian
Daftar Membership โ†’