Kurnia Andi Nugroho
laravel middleware, tutorial middleware laravel, laravel bahasa indonesia, belajar laravel
0 comment
Middleware adalah salah satu fitur penting dalam Laravel yang berfungsi sebagai jembatan antara request dan response. Dengan middleware, kita dapat memfilter HTTP request sebelum masuk ke controller dan memberikan response sesuai logika yang kita buat.
Secara sederhana, middleware adalah mekanisme untuk mengintervensi proses HTTP request dan response. Laravel sendiri sudah menyediakan beberapa middleware bawaan, seperti:
auth untuk mengecek apakah user sudah login.guest untuk redirect user jika sudah login.csrf untuk melindungi aplikasi dari serangan CSRF.throttle untuk membatasi jumlah request (rate limiting).Gunakan middleware ketika kamu ingin:
Pada tutorial ini dibuat, kita menggunakan versi laravel 12.
Jalankan perintah Artisan berikut kedalam CMD dan tentunya didalam project laravel yang sedang dikerjakan
php artisan make:middleware CekUsia
Perintah ini akan membuat file CekUsia.php di folder app/Http/Middleware
<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
class CekUsia
{
public function handle(Request $request, Closure $next)
{
if ($request->umur <= 17) {
return redirect('tidak-diizinkan');
}
return $next($request);
}
}
Middleware ini akan mengecek apakah nilai umur dalam request lebih kecil atau sama dengan 17. Jika ya, akan diarahkan ke halaman "tidak diizinkan".
Tambahkan middleware ke file bootstrap/app.php
return Application::configure(basePath: dirname(__DIR__))
->withRouting(
web: __DIR__.'/../routes/web.php',
api: __DIR__.'/../routes/api.php',
commands: __DIR__.'/../routes/console.php',
health: '/up',
)
->withMiddleware([
// Middleware global (berlaku untuk semua request)
])
->withRouteMiddleware([
'cek.usia' => \App\Http\Middleware\CekUsia::class, // <- tambahkan ini
])
->create();
Route::get('/dashboard', function () {
return 'Selamat datang!';
})->middleware('cek.usia');
Middleware di Laravel sangat powerful untuk mengatur alur request dan response. Dengan memanfaatkannya secara bijak, kita bisa menjaga keamanan, efisiensi, dan fleksibilitas aplikasi yang kita bangun.
Kurnia Andi Nugroho
Web & Mobile App Developer, Laravel, Inertia, Vue.Js, React.Js
Founder of Lagikoding.com Laravel Enthusiast & Web Developer