{"id":67383,"date":"2026-09-02T08:58:24","date_gmt":"2026-09-02T01:58:24","guid":{"rendered":"https:\/\/www.rumahweb.com\/journal\/?p=67383"},"modified":"2026-08-31T09:14:04","modified_gmt":"2026-08-31T02:14:04","slug":"cara-membuat-middleware-custom-di-laravel","status":"publish","type":"post","link":"https:\/\/www.rumahweb.com\/journal\/cara-membuat-middleware-custom-di-laravel\/","title":{"rendered":"Cara Membuat Middleware Custom di Laravel"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Saat membangun aplikasi web dengan Laravel, terkadang fitur bawaan <em>framework<\/em> belum cukup untuk memenuhi kebutuhan proyek. Dalam kondisi seperti ini, membuat middleware custom dapat menjadi solusi untuk menambahkan logika tertentu, seperti autentikasi, pengecekan hak akses, hingga pencatatan aktivitas pengguna.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Middleware bekerja sebagai lapisan yang memproses <em>request <\/em>sebelum diteruskan ke aplikasi. Dengan memahami cara kerja dan proses pembuatannya, Anda dapat mengatur alur request sesuai kebutuhan tanpa mengubah kode utama aplikasi.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Pada artikel ini, kita akan membahas konsep middleware, cara kerjanya, serta langkah-langkah membuat middleware custom di Laravel.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Apa Itu Middleware?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Middleware<\/em> adalah lapisan perantara yang digunakan Laravel untuk memproses dan menyaring HTTP <em>request <\/em>sebelum diteruskan ke <em>controller<\/em>. Middleware dapat memeriksa kondisi tertentu pada setiap <em>request<\/em>, kemudian menentukan apakah <em>request <\/em>tersebut boleh dilanjutkan, ditolak, atau perlu diproses terlebih dahulu.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sederhananya, middleware dapat dianalogikan seperti petugas keamanan di pintu masuk. Sebelum pengunjung masuk ke sebuah gedung, petugas akan memeriksa apakah pengunjung memiliki izin. Jika memenuhi syarat, pengunjung diperbolehkan masuk. Jika tidak, akses dapat ditolak.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dalam Laravel, middleware bekerja dengan konsep yang serupa. Ketika pengguna mengakses sebuah URL, request akan melewati middleware terlebih dahulu sebelum sampai ke <em>controller<\/em>. Misalnya, middleware dapat digunakan untuk memeriksa apakah pengguna sudah login, memiliki hak akses tertentu, atau mengirim request dalam jumlah yang wajar.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Laravel juga menyediakan berbagai middleware bawaan, seperti <code><strong>auth<\/strong><\/code> untuk memeriksa autentikasi pengguna dan <code><strong>throttle<\/strong><\/code> untuk membatasi jumlah request. Namun, setiap aplikasi dapat memiliki kebutuhan yang berbeda. Jika middleware bawaan belum memenuhi kebutuhan tersebut, Anda dapat membuat middleware custom untuk menerapkan aturan atau logika sesuai kebutuhan aplikasi.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Manfaat Membuat Middleware Custom di Laravel<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Membuat <em>middleware<\/em> <em>custom<\/em> bukan sekadar praktik teknis, tetapi juga strategi arsitektur yang berdampak langsung pada kualitas kode dan keamanan aplikasi. Berikut beberapa manfaat utamanya:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Kode lebih terstruktur dan mudah dipelihara Logika validasi atau pengecekan yang sebelumnya ditulis berulang di banyak <em>controller<\/em> dapat dipusatkan dalam satu <em>middleware<\/em>, sehingga kode menjadi lebih rapi dan konsisten.<\/li>\n\n\n\n<li>Keamanan aplikasi lebih terjamin <em>Middleware<\/em> <em>custom<\/em> memungkinkan anda menambahkan lapisan proteksi tambahan, misalnya validasi token, pembatasan IP, atau pengecekan status akun pengguna sebelum request diteruskan.<\/li>\n\n\n\n<li>Fleksibilitas tinggi terhadap kebutuhan bisnis setiap proyek memiliki aturan bisnis yang berbeda. <em>Middleware<\/em> <em>custom<\/em> memberi ruang untuk menerapkan aturan tersebut tanpa mengubah logika inti aplikasi.<\/li>\n\n\n\n<li>Mendukung skalabilitas proyek saat aplikasi berkembang, <em>middleware<\/em> dapat digunakan kembali di berbagai <em>route<\/em> atau grup <em>route<\/em> lain, sehingga proses pengembangan menjadi lebih efisien.<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">Memahami Cara Kerja Middleware<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Untuk dapat membuat <em>middleware<\/em> yang efektif, penting memahami di mana posisi <em>middleware<\/em> dalam lifecycle <em>request<\/em> Laravel. Secara garis besar, alurnya sebagai berikut:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Request masuk&nbsp;ke aplikasi melalui <em>file<\/em> <em>public\/index.php.<\/em><\/li>\n\n\n\n<li>Request diteruskan ke <em>HTTP Kernel<\/em>, yang bertugas menjalankan seluruh <em>middleware<\/em> yang terdaftar.<\/li>\n\n\n\n<li><em>Middleware<\/em> diproses secara berurutan sesuai konfigurasi, baik <em>middleware<\/em> <em>global<\/em>, grup, maupun <em>middleware<\/em> yang ditempel langsung pada <em>route<\/em>.<\/li>\n\n\n\n<li>Setelah lolos semua <em>middleware<\/em>, <em>request<\/em> diteruskan ke <em>controller<\/em>&nbsp;untuk diproses lebih lanjut.<\/li>\n\n\n\n<li>Response dari <em>controller<\/em> dapat kembali melewati <em>middleware<\/em> sebelum akhirnya dikirim ke pengguna.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Konsep penting yang perlu dipahami adalah <em>middleware<\/em> bekerja seperti lapisan bawang. Setiap <em>middleware<\/em> dapat menjalankan logika sebelum request diteruskan maupun setelah response dihasilkan menggunakan fungsi <em><code>$next($request)<\/code> <\/em>sebagai penghubung antar lapisan.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Membuat Middleware Custom di Laravel<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Berikut langkah &#8211; langkah verifikasi untuk membuat <em>middleware<\/em> <em>custom<\/em> di laravel, mulai dari pembuatan file hingga pendaftaran <em>middleware<\/em>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 1. Membuat File Middleware<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Gunakan perintah <em>Artisan<\/em>&nbsp;berikut melalui terminal:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>php artisan make:middleware CekStatusAkun<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Perintah ini akan menghasilkan file baru di direktori<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>app\/Http\/Middleware\/CekStatusAkun.php.<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Step 2. Menulis Logika Middleware<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Buka file yang baru dibuat, lalu tambahkan logika sesuai kebutuhan. Contoh sederhana untuk memeriksa status akun pengguna:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?php\n\nnamespace App\\Http\\Middleware;\n\nuse Closure;\nuse Illuminate\\Http\\Request;\n\nclass CekStatusAkun\n{\n    public function handle(Request $request, Closure $next)\n    {\n        if ($request-&gt;user() &amp;&amp; $request-&gt;user()-&gt;status !== 'aktif') {\n            return response()-&gt;json(&#91;\n                'message' =&gt; 'Akun Anda tidak aktif.'\n            ], 403);\n        }\n\n        return $next($request);\n    }\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Pada contoh di atas, <em>middleware<\/em> akan menghentikan <em>request<\/em> dan mengembalikan response <em>error<\/em> jika status akun pengguna tidak aktif.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 3. Mendaftarkan Middleware<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Middleware yang baru dibuat perlu didaftarkan agar dapat digunakan. Untuk Laravel versi 10 ke bawah, pendaftaran dilakukan di file app\/Http\/Kernel.php:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>protected $routeMiddleware = &#91;\n    \/\/ middleware lain...\n    'cek.status' =&gt; \\App\\Http\\Middleware\\CekStatusAkun::class,\n];<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Sementara pada Laravel 11 ke atas, pendaftaran dilakukan melalui file <em>bootstrap\/app.php<\/em> menggunakan <em>method withMiddleware().<\/em> jangan lupa import middlewarenya diatas sendiri<br \/><em>use App\\Http\\Middleware\\CekStatusAkun;<\/em><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>-&gt;withMiddleware(function (Middleware $middleware): void {\n     $middleware-&gt;alias(&#91;\n        'cek.status' =&gt; CekStatusAkun::class,\n    ]);\n    })<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Step 4. Membuat Controller<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Silahkan membuat dashboardController dengan perintah berikut:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>php artisan make:controller DashboardController<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Kemudian di DashboardController buat seperti berikut :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>public function index()\n    {\n        return response()-&gt;json(&#91;\n            'message' =&gt; 'Selamat datang di dashboard!'\n        ]);\n    }<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Step 5. Menerapkan Middleware pada Route<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Setelah terdaftar, middleware dapat digunakan pada route tertentu yang dapat di setting pada folder <em>routes<\/em> file <em>web.php<\/em> :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>use App\\Http\\Controllers\\DashboardController;\nRoute::get('\/dashboard', &#91;DashboardController::class, 'index'])\n    -&gt;middleware('cek.status');<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Step 6. Setting .env dan Tambahkan Table Status Pada Database User Default<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Pada file .env rubah konfigurasi databasenya, disini saya merubah seperti berikut :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>DB_CONNECTION=mysql\nDB_HOST=127.0.0.1\nDB_PORT=3306\nDB_DATABASE=laravelmiddleware\nDB_USERNAME=root\nDB_PASSWORD=<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Kemudian pada <em>folder database<\/em>, <em>file user default<\/em> bawaan laravel saya menambahkan kolom status, untuk cek usernya apakah aktif atau tidak.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Schema::create('users', function (Blueprint $table) {\n            $table-&gt;id();\n            $table-&gt;string('name');\n            $table-&gt;string('email')-&gt;unique();\n            $table-&gt;timestamp('email_verified_at')-&gt;nullable();\n            $table-&gt;string('password');\n            $table-&gt;string('status')-&gt;default('aktif'); \/\/ Menambahkan kolom status dengan default 'aktif\n'\n            $table-&gt;rememberToken();\n            $table-&gt;timestamps();\n        });<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Kemudian jangan lupa tambahkan status tersebut kedalam models user.php<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>protected $fillable = &#91;\n        'name',\n        'email',\n        'password',\n        'status', \/\/ Menambahkan kolom status ke dalam fillable\n    ];<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Setelah semua dilakukan kemudian jalankan <em>php artisan migrate<\/em><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 7. Membuat User untuk Pengujian Login<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Karena <em>middleware<\/em> pada contoh di atas memeriksa data pengguna yang sedang <em>login ($request-&gt;user())<\/em>, Anda memerlukan akun pengguna terlebih dahulu untuk menguji apakah middleware berfungsi dengan benar.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Disini saya menggunakan tinker untuk membuat user laravel. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Jalankan perintah berikut melalui terminal:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>php artisan tinker<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Setelah masuk ke mode <em>interactive shell<\/em>, buat user baru dengan perintah:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>User::create(&#91;\n    'name' =&gt; 'Budi Santoso',\n    'email' =&gt; 'budi@contoh.com',\n    'password' =&gt; bcrypt('password123'),\n    'status' =&gt; 'aktif',\n]);<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Pastikan kolom status sudah ditambahkan pada migrasi tabel <em>users<\/em> apabila Anda mengikuti contoh <em>middleware<\/em> CekStatusAkun di atas.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 8. Menguji Middleware dengan Feature Test<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Selain diuji secara manual melalui login, <em>middleware<\/em> sebaiknya juga diuji secara otomatis agar perubahan kode di kemudian hari tidak merusak logika yang sudah berjalan. Laravel menyediakan <em>feature test<\/em>&nbsp;yang dapat mensimulasikan request lengkap, termasuk proses autentikasi.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Buat file test baru dengan perintah:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>php artisan make:test CekStatusAkunTest<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Isi <em>file tests\/Feature\/CekStatusAkunTest.php<\/em>&nbsp;dengan contoh berikut:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?php\n\nnamespace Tests\\Feature;\n\nuse App\\Models\\User;\nuse Illuminate\\Foundation\\Testing\\RefreshDatabase;\nuse Tests\\TestCase;\n\nclass CekStatusAkunTest extends TestCase\n{\n    use RefreshDatabase;\n\n    public function test_user_aktif_dapat_mengakses_dashboard(): void\n    {\n        $user = User::factory()-&gt;create(&#91;'status' =&gt; 'aktif']);\n\n        $response = $this-&gt;actingAs($user)-&gt;get('\/dashboard');\n\n        $response-&gt;assertStatus(200);\n    }\n\n    public function test_user_nonaktif_ditolak_middleware(): void\n    {\n        $user = User::factory()-&gt;create(&#91;'status' =&gt; 'nonaktif']);\n\n        $response = $this-&gt;actingAs($user)-&gt;get('\/dashboard');\n\n        $response-&gt;assertStatus(403);\n    }\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Jalankan pengujian dengan perintah:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>php artisan test --filter=CekStatusAkunTest<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Jika kedua skenario di atas berhasil (user aktif mendapat akses, user nonaktif ditolak), maka <em>middleware<\/em> <em>custom<\/em> yang dibuat sudah terverifikasi bekerja sesuai fungsinya. Pendekatan ini penting untuk memastikan keandalan aplikasi, terutama saat <em>middleware<\/em> digunakan pada fitur yang berkaitan langsung dengan keamanan dan hak akses pengguna.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/08\/image-20.png\"><img loading=\"lazy\" decoding=\"async\" width=\"936\" height=\"184\" src=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/08\/image-20.png\" alt=\"Testing Middleware\" class=\"wp-image-67384\" srcset=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/08\/image-20.png 936w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/08\/image-20-300x59.png 300w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/08\/image-20-768x151.png 768w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/08\/image-20-370x73.png 370w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/08\/image-20-270x53.png 270w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/08\/image-20-570x112.png 570w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/08\/image-20-740x145.png 740w\" sizes=\"auto, (max-width: 936px) 100vw, 936px\" \/><\/a><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">FAQ<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Berikut beberapa FAQ populer tentang apa itu middleware.<\/p>\n\n\n\n<details class=\"wp-block-details is-layout-flow wp-block-details-is-layout-flow\" style=\"font-style:normal;font-weight:700\"><summary>Apa perbedaan middleware global dan middleware route?<\/summary>\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p class=\"wp-block-paragraph\" style=\"font-style:normal;font-weight:400\">Middleware global akan dijalankan pada setiap request yang masuk ke aplikasi, sedangkan middleware route hanya dijalankan pada route tertentu yang secara eksplisit menggunakannya.<\/p>\n<\/details>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\"\/>\n\n\n\n<details class=\"wp-block-details is-layout-flow wp-block-details-is-layout-flow\" style=\"font-style:normal;font-weight:700\"><summary>Apakah middleware bisa digunakan untuk API dan web sekaligus?<\/summary>\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p class=\"wp-block-paragraph\" style=\"font-style:normal;font-weight:400\">Bisa. Middleware dapat didaftarkan pada grup web maupun api sesuai kebutuhan, tergantung pada konfigurasi routing aplikasi.<\/p>\n<\/details>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\"\/>\n\n\n\n<details class=\"wp-block-details is-layout-flow wp-block-details-is-layout-flow\" style=\"font-style:normal;font-weight:700\"><summary>Bagaimana cara menguji middleware custom?<\/summary>\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p class=\"wp-block-paragraph\" style=\"font-style:normal;font-weight:400\">Middleware dapat diuji menggunakan feature test laravel, misalnya dengan bantuan method actingAs() untuk mensimulasikan user yang sudah login, lalu mengirim request ke route yang dilindungi middleware dan memverifikasi status response yang dihasilkan.<\/p>\n<\/details>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\"\/>\n\n\n\n<details class=\"wp-block-details is-layout-flow wp-block-details-is-layout-flow\" style=\"font-style:normal;font-weight:700\"><summary>Apakah perlu membuat user khusus untuk menguji middleware yang berkaitan dengan login?<\/summary>\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p class=\"wp-block-paragraph\" style=\"font-style:normal;font-weight:400\">Ya. Jika middleware memeriksa data pengguna yang sedang login, seperti role atau status akun, Anda perlu menyiapkan user uji coba terlebih dahulu, baik melalui Tinker, seeder, maupun factory&nbsp;pada saat menjalankan test otomatis.<\/p>\n<\/details>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\"\/>\n\n\n\n<details class=\"wp-block-details is-layout-flow wp-block-details-is-layout-flow\" style=\"font-style:normal;font-weight:700\"><summary>Apakah middleware memengaruhi performa aplikasi?<\/summary>\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p class=\"wp-block-paragraph\" style=\"font-style:normal;font-weight:400\">Selama logika di dalamnya efisien, middleware tidak akan memberikan dampak performa yang signifikan. Namun, hindari operasi berat seperti query database kompleks di dalam middleware.<\/p>\n<\/details>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Kesimpulan<\/h2>\n\n\n\n<h2 class=\"wp-block-heading\">Kesimpulan<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Membuat middleware custom di Laravel merupakan keterampilan penting bagi <em>developer<\/em> untuk membangun aplikasi yang lebih aman, terstruktur, dan mudah dikembangkan. Dengan memahami konsep, cara kerja, serta penerapannya, middleware dapat digunakan untuk mengatur alur request sesuai kebutuhan aplikasi.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Setelah aplikasi Laravel selesai dikembangkan, Anda juga membutuhkan layanan hosting yang mendukung kebutuhan aplikasi agar dapat diakses secara online. Layanan <strong><a href=\"https:\/\/www.rumahweb.com\/hosting-murah\/\" target=\"_blank\" rel=\"noopener\" title=\"hosting murah\">Hosting Murah<\/a><\/strong> dari Rumahweb dapat menjadi salah satu pilihan untuk website atau aplikasi Laravel dengan kebutuhan <em>resource <\/em>yang sesuai.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Semoga artikel ini membantu Anda memahami middleware dan mulai menerapkannya dalam pengembangan aplikasi Laravel.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Saat membangun aplikasi web dengan Laravel, terkadang fitur bawaan framework belum cukup untuk memenuhi kebutuhan proyek. Dalam kondisi seperti ini, membuat middleware custom dapat menjadi solusi untuk menambahkan logika tertentu, seperti autentikasi, pengecekan hak akses, hingga pencatatan aktivitas pengguna. Middleware bekerja sebagai lapisan yang memproses request sebelum diteruskan ke aplikasi. Dengan memahami cara kerja dan [&hellip;]<\/p>\n","protected":false},"author":357,"featured_media":67805,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7],"tags":[798,796,2686],"class_list":["post-67383","post","type-post","status-publish","format-standard","has-post-thumbnail","category-web-programming","tag-framework","tag-laravel","tag-middleware"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"Pelajari cara membuat middleware custom di Laravel, mulai dari pengertian, cara kerja, hingga penerapannya untuk autentikasi dan hak akses aplikasi.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Arief Hidayatullah\"\/>\n\t<meta name=\"google-site-verification\" content=\"wPstUwU5246IbK_1PqwGrc1LoSDnB-9rPbcT8_vSNgQ\" \/>\n\t<meta name=\"keywords\" content=\"framework,laravel,middleware\" \/>\n\t<link rel=\"canonical\" href=\"https:\/\/www.rumahweb.com\/journal\/cara-membuat-middleware-custom-di-laravel\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"id_Id\" \/>\n\t\t<meta property=\"og:site_name\" content=\"Rumahweb Journal \u2013 Panduan Website, Hosting, dan Server\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"Cara Membuat Middleware Custom di Laravel \u2013 Rumahweb\" \/>\n\t\t<meta property=\"og:description\" content=\"Pelajari cara membuat middleware custom di Laravel, mulai dari pengertian, cara kerja, hingga penerapannya untuk autentikasi dan hak akses aplikasi.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/www.rumahweb.com\/journal\/cara-membuat-middleware-custom-di-laravel\/\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/08\/Banner-Cara-Membuat-Middleware-Custom-di-Laravel.webp\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/08\/Banner-Cara-Membuat-Middleware-Custom-di-Laravel.webp\" \/>\n\t\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t\t<meta property=\"og:image:height\" content=\"630\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2026-09-02T01:58:24+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2026-08-31T02:14:04+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/RumahwebIndonesia\/\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n\t\t<meta name=\"twitter:site\" content=\"@rumahwebtweet\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Cara Membuat Middleware Custom di Laravel \u2013 Rumahweb\" \/>\n\t\t<meta name=\"twitter:description\" content=\"Pelajari cara membuat middleware custom di Laravel, mulai dari pengertian, cara kerja, hingga penerapannya untuk autentikasi dan hak akses aplikasi.\" \/>\n\t\t<meta name=\"twitter:creator\" content=\"@rumahwebtweet\" \/>\n\t\t<meta name=\"twitter:image\" content=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/08\/Banner-Cara-Membuat-Middleware-Custom-di-Laravel.webp\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Cara Membuat Middleware Custom di Laravel \u2013 Rumahweb","description":"Pelajari cara membuat middleware custom di Laravel, mulai dari pengertian, cara kerja, hingga penerapannya untuk autentikasi dan hak akses aplikasi.","canonical_url":"https:\/\/www.rumahweb.com\/journal\/cara-membuat-middleware-custom-di-laravel\/","robots":"max-image-preview:large","keywords":"framework,laravel,middleware","webmasterTools":{"google-site-verification":"wPstUwU5246IbK_1PqwGrc1LoSDnB-9rPbcT8_vSNgQ","miscellaneous":""},"schema":null,"og:locale":"id_Id","og:site_name":"Rumahweb Journal \u2013 Panduan Website, Hosting, dan Server","og:type":"article","og:title":"Cara Membuat Middleware Custom di Laravel \u2013 Rumahweb","og:description":"Pelajari cara membuat middleware custom di Laravel, mulai dari pengertian, cara kerja, hingga penerapannya untuk autentikasi dan hak akses aplikasi.","og:url":"https:\/\/www.rumahweb.com\/journal\/cara-membuat-middleware-custom-di-laravel\/","og:image":"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/08\/Banner-Cara-Membuat-Middleware-Custom-di-Laravel.webp","og:image:secure_url":"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/08\/Banner-Cara-Membuat-Middleware-Custom-di-Laravel.webp","og:image:width":1200,"og:image:height":630,"article:published_time":"2026-09-02T01:58:24+00:00","article:modified_time":"2026-08-31T02:14:04+00:00","article:publisher":"https:\/\/www.facebook.com\/RumahwebIndonesia\/","twitter:card":"summary_large_image","twitter:site":"@rumahwebtweet","twitter:title":"Cara Membuat Middleware Custom di Laravel \u2013 Rumahweb","twitter:description":"Pelajari cara membuat middleware custom di Laravel, mulai dari pengertian, cara kerja, hingga penerapannya untuk autentikasi dan hak akses aplikasi.","twitter:creator":"@rumahwebtweet","twitter:image":"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/08\/Banner-Cara-Membuat-Middleware-Custom-di-Laravel.webp"},"aioseo_meta_data":{"post_id":"67383","title":"#post_title #separator_sa Rumahweb","description":"Pelajari cara membuat middleware custom di Laravel, mulai dari pengertian, cara kerja, hingga penerapannya untuk autentikasi dan hak akses aplikasi.","keywords":null,"keyphrases":{"focus":{"keyphrase":"membuat middleware custom","score":0,"analysis":[]},"additional":[]},"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":"","og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"Article","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":"-1","robots_max_videopreview":"-1","robots_max_imagepreview":"large","priority":null,"frequency":"default","location":null,"local_seo":null,"breadcrumb_settings":null,"limit_modified_date":false,"ai":{"faqs":[],"keyPoints":[],"schemas":[],"titles":[],"descriptions":[],"socialPosts":{"email":{"subject":"","preview":"","content":""},"linkedin":[],"twitter":[],"facebook":[],"instagram":[]}},"created":"2026-08-12 15:08:50","updated":"2026-09-02 02:00:36","seo_analyzer_scan_date":null,"focus_keyword":"membuat middleware custom","additional_keywords":null,"truseo_locale":"id_ID"},"_links":{"self":[{"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/posts\/67383","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/users\/357"}],"replies":[{"embeddable":true,"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/comments?post=67383"}],"version-history":[{"count":3,"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/posts\/67383\/revisions"}],"predecessor-version":[{"id":67808,"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/posts\/67383\/revisions\/67808"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/media\/67805"}],"wp:attachment":[{"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/media?parent=67383"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/categories?post=67383"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/tags?post=67383"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}