middleware request laravel | java php laravel linux mysql sql bootstrap html css query java php laravel linux mysql sql bootstrap html css query: middleware request laravel

Wednesday, January 14, 2026

middleware request laravel

Cara Membuat Middleware Berbasis Request di Laravel

Dalam pengembangan aplikasi Laravel skala besar seperti Sistem Informasi Kampus dan yang lainnya, keamanan dan kontrol akses tidak boleh hanya bergantung pada tampilan (UI). Kita membutuhkan lapisan pengamanan di sisi server yang mampu memeriksa setiap permintaan (request) sebelum diproses oleh controller.


Laravel menyediakan fitur yang sangat powerful untuk hal ini, yaitu Middleware.

Artikel ini akan membahas secara lengkap dan SEO-oriented:

  • Apa itu middleware di Laravel

  • Mengapa middleware berbasis Request sangat penting

  • Cara membuat middleware sendiri

  • Cara membaca data dari Request di middleware

  • Contoh implementasi nyata untuk sistem akademik

  • Best practice keamanan

1. Apa Itu Middleware di Laravel?

Middleware adalah lapisan penyaring (filter) yang dijalankan sebelum atau sesudah request diproses oleh controller.

Secara sederhana:

Middleware adalah “satpam” yang memeriksa setiap request yang masuk.

Contoh middleware bawaan Laravel:

  • auth → memastikan user sudah login

  • verified → memastikan email sudah diverifikasi

  • throttle → membatasi jumlah request

Di sistem akademik:

  • Kita butuh middleware untuk memeriksa apakah:

    • User adalah dosen atau prodi

    • Tahun akademik masih aktif

    • User berhak input nilai

    • Request berasal dari modul yang benar

Semua itu bisa dilakukan menggunakan middleware berbasis Request.

2. Mengapa Middleware Berbasis Request Itu Penting?

Karena request membawa informasi penting seperti:

  • URL

  • Route

  • Method

  • User yang login

  • Session

  • Parameter

Dengan membaca Request di middleware, kita bisa membuat aturan seperti:

  • “Jika request ke /sido/nilai, maka hanya dosen koordinator yang boleh”

  • “Jika tahun akademik tidak aktif, blok semua input nilai”

  • “Jika user bukan prodi, jangan izinkan akses /inputs

Tanpa middleware:

User bisa mencoba mengakses URL secara manual dan menembus sistem.

3. Membuat Middleware Baru

Jalankan perintah:

php artisan make:middleware CheckTahunAkademikAktif

Laravel akan membuat file:

app/Http/Middleware/CheckTahunAkademikAktif.php

4. Struktur Dasar Middleware

Buka file tersebut:

<?php

namespace App\Http\Middleware;

use Closure;

class CheckTahunAkademikAktif
{
    public function handle($request, Closure $next)
    {
        return $next($request);
    }
}

Method handle() menerima:

  • $request → object Request

  • $next → melanjutkan ke controller jika lolos

5. Membaca Data Request di Middleware

Kita bisa membaca berbagai informasi:

$request->path();
$request->method();
$request->segment(1);
$request->route()->getName();
$request->user();

Contoh:

$module = $request->segment(1); // sido, inputs, akademik
$routeName = $request->route()->getName();
$user = $request->user();

6. Contoh Middleware: Cek Tahun Akademik Aktif

Misalnya di SIMPOL, dosen hanya boleh input nilai pada tahun akademik aktif.

use App\Utils\SaifiUtil;

public function handle($request, Closure $next)
{
    if($request->segment(1) == 'sido'){
        if($request->input('tahun_akademik_id') != SaifiUtil::getTahunAkademikAktifID()){
            abort(403,'Tahun akademik tidak aktif');
        }
    }

    return $next($request);
}

Ini berarti:

  • Hanya request dari /sido yang dicek

  • Prodi tidak terkena aturan ini

7. Contoh Middleware: Memisahkan Dosen dan Prodi

Buat middleware:

php artisan make:middleware CheckSidoAccess

Isi:

public function handle($request, Closure $next)
{
    if($request->segment(1) == 'sido'){
        if(!$request->user()->can('input-nilai')){
            abort(403,'Anda bukan dosen koordinator');
        }
    }

    return $next($request);
}

8. Mendaftarkan Middleware

Di app/Http/Kernel.php

Tambahkan:

protected $routeMiddleware = [
    'check.sido' => \App\Http\Middleware\CheckSidoAccess::class,
    'check.tahun' => \App\Http\Middleware\CheckTahunAkademikAktif::class,
];

9. Menggunakan Middleware di Route

Route::middleware(['auth','check.sido','check.tahun'])->group(function(){
    Route::post('/sido/nilai','InputController@store');
});

Artinya:

  1. Harus login

  2. Harus dosen koordinator

  3. Harus tahun akademik aktif

Baru boleh simpan nilai.

10. Kenapa Ini Lebih Aman daripada Cek di Controller?

Karena middleware dijalankan sebelum controller dipanggil.

Jika ditolak:

  • Controller tidak dieksekusi

  • Database tidak disentuh

  • Lebih aman

11. Praktik Enterprise di Sistem Akademik

Di sistem kampus profesional:

  • Semua akses dosen dikunci di middleware

  • Semua akses prodi dikunci di middleware

  • Semua tahun akademik dikontrol di middleware

Controller hanya fokus pada:

bisnis logic, bukan keamanan

12. Kesimpulan

Middleware berbasis Request adalah:

  • Tulang punggung keamanan Laravel

  • Kunci arsitektur sistem akademik

  • Fondasi aplikasi enterprise

Dengan middleware, kamu bisa:

  • Memisahkan dosen dan prodi

  • Mengunci tahun akademik

  • Mengontrol modul

  • Mencegah manipulasi URL

Jika kamu membangun sistem informasi, maka middleware berbasis Request bukan opsi — tapi kewajiban.

No comments:

Post a Comment

saifiahmada.com adalah blog belajar programming Indonesia, membahas lengkap materi bahasa pemrograman: code HTML, CSS, Bootstrap, Desain, PHP, MySQL, coding Java, Query, SQL, dan dunia linux