Membuat Middleware


Tutorial Laravel: Membuat Middleware

Middleware di Laravel adalah mekanisme yang digunakan untuk memfilter HTTP request yang masuk ke aplikasi Anda. Dalam tutorial ini, kita akan membahas langkah-langkah untuk membuat middleware di Laravel secara detail.

Langkah 1: Membuat Middleware

Untuk membuat middleware, Anda dapat menggunakan Artisan command yang disediakan oleh Laravel. Jalankan perintah berikut di terminal Anda:

php artisan make:middleware CheckAge

Perintah di atas akan membuat file middleware baru di direktori app/Http/Middleware. Anda akan mendapatkan file bernama CheckAge.php.

Langkah 2: Menulis Logika Middleware

Buka file CheckAge.php yang baru saja Anda buat di editor Anda. Di dalam file ini, Anda akan menemukan method handle, yang merupakan tempat Anda dapat menambahkan logika untuk middleware Anda.

namespace App\Http\Middleware;

use Closure;
use Illuminate\Http\Request;

class CheckAge
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @param  int  $age
     * @return mixed
     */
    public function handle(Request $request, Closure $next, $age)
    {
        if ($request->input('age') < $age) {
            return response('Unauthorized.', 401);
        }

        return $next($request);
    }
}

Dalam contoh ini, logika middleware CheckAge memeriksa apakah parameter age yang diterima dari request kurang dari nilai yang Anda tentukan. Jika kurang, maka middleware akan mengembalikan response Unauthorized. Jika tidak, request akan diteruskan ke middleware berikutnya atau controller.

Langkah 3: Mendaftarkan Middleware

Setelah Anda menulis logika middleware, langkah selanjutnya adalah mendaftarkannya di aplikasi Anda. Buka file app/Http/Kernel.php dan tambahkan middleware Anda ke dalam properti $routeMiddleware.

protected $routeMiddleware = [
    // ...
    'checkage' => \App\Http\Middleware\CheckAge::class,
];

Langkah 4: Menggunakan Middleware

Sekarang Anda dapat menggunakan middleware yang telah Anda buat pada route Anda. Buka file routes/web.php dan tambahkan middleware ke route yang Anda inginkan:

Route::get('profile', function () {
    return 'Welcome to your profile!';
})->middleware('checkage:18');

Dalam contoh ini, route /profile akan menggunakan middleware CheckAge, dan akan memeriksa apakah age yang dikirimkan dalam request minimal 18 tahun.

Langkah 5: Menguji Middleware

Untuk menguji middleware Anda, Anda bisa menggunakan Postman atau curl untuk mengakses route yang telah Anda buat. Cobalah mengirimkan request ke route /profile dengan parameter age.

  1. Request dengan age di bawah 18:

    GET /profile?age=15

    Anda akan mendapatkan response:

    Unauthorized.
  2. Request dengan age di atas 18:

    GET /profile?age=20

    Anda akan mendapatkan response:

    Welcome to your profile!

Kesimpulan

Anda telah berhasil membuat middleware di Laravel yang memfilter request berdasarkan parameter tertentu. Middleware memungkinkan Anda untuk menangani berbagai aspek request dan mengelola akses ke bagian-bagian dari aplikasi Anda secara efisien. Anda dapat menambahkan lebih banyak logika sesuai kebutuhan aplikasi Anda.

Selamat mencoba!