;
Belajar Laravel dengan Mudah dan Menyenangkan
Middleware guest digunakan untuk rute seperti halaman login atau registrasi, sedangkan throttle digunakan untuk membatasi akses ke rute yang rentan, seperti formulir atau API.
Berikut langkah-langkah menggunakan middleware guest dan throttle untuk rute tertentu.
Pastikan kamu sudah:
.env.php artisan make:auth).Middleware Guest
Middleware guest memastikan hanya pengguna yang belum login yang bisa mengakses rute. Tambahkan di routes/web.php:
Route::get('/login', function () {
return view('login');
})->middleware('guest');
Penjelasan:
/login dan melihat halaman login./home).resources/views/login.blade.php):
<!DOCTYPE html>
<html lang="id">
<head>
<title>Login</title>
<link href="https://cdn.jsdelivr.net/npm/tailwindcss@2.2.19/dist/tailwind.min.css" rel="stylesheet">
</head>
<body class="bg-gray-100 p-6">
<h1 class="text-2xl font-bold">Halaman Login</h1>
<p>Silakan login untuk melanjutkan.</p>
</body>
</html>
Middleware Throttle
Middleware throttle membatasi jumlah permintaan. Tambahkan di routes/web.php:
use App\Http\Controllers\PostController;
Route::post('/posts', [PostController::class, 'store'])->middleware('throttle:10,1');
Penjelasan:
throttle:10,1: Membatasi 10 permintaan per menit ke rute /posts.PostController.php):
<?php
namespace App\Http\Controllers;
use App\Models\Post;
use Illuminate\Http\Request;
class PostController extends Controller
{
public function store(Request $request)
{
Post::create([
'title' => $request->title,
'content' => $request->content,
]);
return redirect('/posts');
}
}
Jalankan Server
Jalankan server Laravel dengan:
php artisan serve
Uji rute:
http://localhost:8000/login:
/home./posts dalam 1 menit (misalnya, via Postman) → Muncul error 429 setelah batas terlampaui./login → Dialihkan ke /home./posts dalam 1 menit → Permintaan ke-11 ditolak dengan error 429.app/Http/Middleware/RedirectIfAuthenticated.php.throttle:60,1 untuk 60 permintaan per menit).Selamat! Kamu sudah menguasai middleware guest dan throttle di Laravel untuk mengamankan dan mengontrol akses rute!