Laravel Middleware – Episode 7

Middleware di Laravel adalah lapisan perantara yang menangani permintaan HTTP yang masuk dan keluar dari aplikasi. Middleware berfungsi untuk memfilter atau memodifikasi permintaan dan respons, seperti memeriksa autentikasi pengguna, memverifikasi izin, menangani sesi, dan banyak lagi. Middleware dapat dipasang pada rute, grup rute, atau seluruh aplikasi.

1. Membuat Middleware

Untuk membuat middleware di Laravel, gunakan perintah artisan:

bashCopy codephp artisan make:middleware CheckAge

Ini akan membuat file middleware baru di app/Http/Middleware/CheckAge.php.

Contoh Middleware:

phpCopy code// app/Http/Middleware/CheckAge.php
namespace App\Http\Middleware;

use Closure;

class CheckAge
{
    public function handle($request, Closure $next)
    {
        if ($request->age < 18) {
            return redirect('home');
        }

        return $next($request);
    }
}

Middleware di atas memeriksa apakah usia pengguna lebih kecil dari 18. Jika iya, pengguna akan diarahkan ke halaman home.

2. Mendaftarkan Middleware

Setelah membuat middleware, Anda perlu mendaftarkannya agar dapat digunakan. Daftarkan middleware di app/Http/Kernel.php.

  • Middleware Global: Menangani semua permintaan aplikasi.
  • Middleware Grup: Menangani permintaan untuk grup tertentu (misalnya web, api).
  • Middleware Rute: Didaftarkan untuk digunakan pada rute tertentu.

Contoh mendaftarkan middleware:

phpCopy code// app/Http/Kernel.php
protected $routeMiddleware = [
    'age' => \App\Http\Middleware\CheckAge::class,
];

3. Menggunakan Middleware

Setelah middleware didaftarkan, Anda bisa menggunakannya di rute atau grup rute.

  • Menggunakan di Rute:phpCopy codeRoute::get('profile', function () { // Halaman profil })->middleware('age');
  • Menggunakan di Grup Rute:phpCopy codeRoute::middleware(['age'])->group(function () { Route::get('profile', function () { // Halaman profil }); Route::get('settings', function () { // Halaman pengaturan }); });

4. Jenis-jenis Middleware di Laravel

  • Autentikasi: Middleware seperti auth untuk memastikan pengguna sudah login.
  • Pembatasan Akses: Middleware seperti can untuk memverifikasi hak akses pengguna.
  • Pengaturan CORS: Untuk menangani permintaan dari domain lain.
  • Pengaturan Rate Limiting: Middleware untuk membatasi jumlah permintaan dari klien dalam jangka waktu tertentu.

5. Middleware yang Sudah Ada di Laravel

Laravel menyediakan berbagai middleware bawaan, seperti:

  • auth: Mengecek apakah pengguna sudah terautentikasi.
  • guest: Memeriksa apakah pengguna belum login.
  • verified: Memeriksa apakah pengguna sudah memverifikasi email mereka.
  • throttle: Pembatasan jumlah permintaan untuk melindungi aplikasi dari serangan DDoS.

6. Middleware Terminable

Middleware yang bersifat terminable dapat mengubah respons setelah aplikasi mengirim respons ke pengguna. Untuk membuat middleware terminable, implementasikan metode terminate() di dalam kelas middleware.

Contoh:

phpCopy codepublic function terminate($request, $response)
{
    // Lakukan sesuatu setelah respons dikirim
}

Ringkasan:

  • Middleware digunakan untuk memfilter atau memodifikasi permintaan HTTP dan respons.
  • Pendaftaran middleware dilakukan di app/Http/Kernel.php.
  • Middleware dapat digunakan di rute individual, grup rute, atau seluruh aplikasi.
  • Laravel sudah menyediakan middleware seperti auth, guest, throttle, dll., untuk autentikasi, pembatasan akses, dan lainnya.

Referensi Lainnya :

  • https://medium.com/dotlocal/belajar-laravel-chapter-12-tutorial-middleware-afb21dfacd8e
  • https://www.codepolitan.com/blog/protect-menggunakan-middleware-laravel-59fab97ba55e8/?authuser=0
Tags :

Leave a Reply

Your email address will not be published. Required fields are marked *

three + 10 =

Tutorial Terpopuler

Tutorial Pilihan

Tentang Gurututorku

Gurututorku adalah sebuah kursus online maupun offline yang menyediakan berbagai macam tutorial tentang pemrograman, design, dan multimedia serta artikel teknologi yang tentunya bisa dinikmati dan dipelajari oleh semua orang yang baru ingin belajar dunia IT.

© 2024 – Gurututorku.com | Learning today success tomorrow.