Latihan 1 dari materi Middleware di Laravel — praktek dengan editor kode interaktif, test case otomatis, dan hint terpandu. Langsung jalan di browser.
Kode awal sudah punya route GET /admin/dashboard yang menjawab {"message": "Welcome, admin!"}, dan class middleware CheckApiKey dengan method handle yang masih meneruskan semua request. Biarkan route dan jawabannya, lalu:
Di handle, baca header dengan $request->header("X-Api-Key"). Kalau nilainya bukan "secret123", return response()->json(["error" => "Forbidden"], 403);.
Selain itu, return $next($request); (sudah ada di kode awal).
Pasang middleware-nya: tambahkan ->middleware(CheckApiKey::class) di belakang Route::get(...), sebelum titik koma. Bentuk grup Route::middleware(CheckApiKey::class)->group(function () { ... }); juga boleh.
Saat dijalankan, route-nya dipanggil tanpa header, lewat middleware-mu, jadi output-nya GET /admin/dashboard → 403 lalu {"error":"Forbidden"}.
Yang dicek:
Output-nya memuat GET /admin/dashboard → 403 dan {"error":"Forbidden"}.
Kodenya membaca header( dan memasang middleware-nya dengan middleware(.
Penilai juga mengirim request dengan X-Api-Key: secret123 dan mengharapkan {"message":"Welcome, admin!"}, lalu dengan kunci salah dan mengharapkan {"error":"Forbidden"}.
Hint
Middleware berdiri di depan route: dia membaca kunci dari header request, menolak dengan 403 kalau salah, dan meneruskan ke route kalau benar.
Di handle, tulis satu if yang membandingkan $request->header("X-Api-Key") dengan "secret123" sebelum return $next($request);. Lalu sambungkan ->middleware(CheckApiKey::class) ke Route::get.
if ($request->header("X-Api-Key") !== "secret123") { return response()->json(["error" => "Forbidden"], 403); } return $next($request); lalu Route::get("/admin/dashboard", function () { ... })->middleware(CheckApiKey::class);
</>{ }.css=>#idfn()
Versi baru
HyperSheets
bagian dari BelajarWeb.dev
0%
Membuka gerbang…
HyperSheets
Memperbarui Aplikasi
Versi baru tersedia. Halaman akan dimuat ulang otomatis...