Middleware di Laravel
Penjelasan
Middleware adalah lapisan kode yang dijalankan SEBELUM (atau sesudah) request sampai ke controller — dipakai untuk hal-hal seperti cek autentikasi, logging, atau membatasi akses. Dibuat lewat php artisan make:middleware, lalu dipasang lewat method ->middleware() di route.
Contoh Konsep
<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
class CekUmur
{
public function handle(Request $request, Closure $next)
{
if ($request->input('umur', 0) < 18) {
return response('Akses ditolak, umur minimal 18 tahun', 403);
}
return $next($request); // lanjut ke middleware berikutnya / controller
}
}
// routes/web.php
Route::get('/dewasa', function () {
return 'Selamat datang!';
})->middleware(CekUmur::class);
Praktikum
Buat middleware CekJamKerja yang menolak akses (response 403) kalau jam sekarang (date('H')) di luar rentang 08-17, dan meneruskan request kalau masih dalam jam kerja.
Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.
Tips
JANGAN lupa memanggil $next($request) dan mengembalikan hasilnya di akhir middleware kalau request boleh lanjut — kalau lupa, request akan "berhenti" di situ dan controller tujuannya tidak pernah dijalankan, tanpa pesan error yang jelas.