; Memahami Middleware - Blog Rudi Kurniawan

Blog Laravel Indonesia

Belajar Laravel dengan Mudah dan Menyenangkan

Memahami Middleware
12-07-2025 | Admin User Programming 30 x dilihat

Memahami Middleware

Apa Itu Middleware di Laravel?

Middleware adalah lapisan filter yang memproses permintaan HTTP sebelum mencapai rute atau setelah respons dikembalikan. Middleware digunakan untuk melindungi rute, misalnya, memastikan hanya pengguna yang sudah login yang bisa mengakses halaman tertentu.

Hubungan dengan Rute

Middleware diterapkan pada rute atau controller untuk memeriksa kondisi, seperti autentikasi, sebelum menjalankan logika rute. Jika kondisi tidak terpenuhi (misalnya, pengguna belum login), middleware bisa mengarahkan ulang atau menolak akses.

Tutorial Membuat dan Menggunakan Middleware

Berikut langkah-langkah membuat middleware untuk melindungi rute /posts agar hanya bisa diakses oleh pengguna yang sudah login.

Persiapan

Pastikan kamu sudah:

  • Menginstal Laravel dan mengatur koneksi database di file .env.
  • Mengatur autentikasi (misalnya, menggunakan php artisan make:auth atau Laravel Breeze).
  • Membuat tabel posts dan model Post, serta controller PostController dengan metode index.
  • Membuat view resources/views/posts.blade.php untuk menampilkan data.

Langkah-Langkah

  1. Buat Middleware
    Jalankan perintah berikut untuk membuat middleware:

    php artisan make:middleware EnsureUserIsAuthenticated
    

    Ini membuat file app/Http/Middleware/EnsureUserIsAuthenticated.php.

  2. Edit Middleware
    Buka file EnsureUserIsAuthenticated.php dan tambahkan logika untuk memeriksa autentikasi:

    <?php
    
    namespace App\Http\Middleware;
    
    use Closure;
    use Illuminate\Http\Request;
    use Illuminate\Support\Facades\Auth;
    
    class EnsureUserIsAuthenticated
    {
        public function handle(Request $request, Closure $next)
        {
            if (!Auth::check()) {
                return redirect('/login')->with('error', 'Silakan login terlebih dahulu.');
            }
            return $next($request);
        }
    }
    

    Penjelasan:

    • Auth::check(): Memeriksa apakah pengguna sudah login.
    • redirect('/login'): Mengarahkan ke halaman login jika belum login.
    • $next($request): Melanjutkan ke rute jika kondisi terpenuhi.
  3. Daftarkan Middleware
    Buka app/Http/Kernel.php dan tambahkan middleware ke properti $routeMiddleware:

    protected $routeMiddleware = [
        // ...
        'auth.custom' => \App\Http\Middleware\EnsureUserIsAuthenticated::class,
    ];
    
  4. Terapkan Middleware pada Rute
    Buka routes/web.php dan terapkan middleware pada rute /posts:

    use App\Http\Controllers\PostController;
    
    Route::get('/posts', [PostController::class, 'index'])->middleware('auth.custom');
    

    Alternatif, terapkan di controller (PostController.php):

    public function __construct()
    {
        $this->middleware('auth.custom');
    }
    
  5. Jalankan Server
    Jalankan server Laravel dengan:

    php artisan serve
    

    Uji rute:

    • Buka http://localhost:8000/posts tanpa login → Diarahkan ke /login dengan pesan error.
    • Login, lalu buka /posts → Menampilkan daftar postingan.

Menggunakan Middleware Bawaan

Laravel menyediakan middleware auth bawaan untuk autentikasi. Contoh penggunaan:

Route::get('/posts', [PostController::class, 'index'])->middleware('auth');

Ini otomatis memeriksa autentikasi dan mengarahkan ke halaman login jika perlu.

Mengapa Middleware Penting?

  • Keamanan: Melindungi rute dari akses tidak sah.
  • Fleksibilitas: Bisa digunakan untuk validasi, logging, atau modifikasi permintaan.
  • Organisasi: Memisahkan logika proteksi dari controller atau rute.

Contoh Hasil

Jika pengguna belum login dan mencoba mengakses /posts, mereka akan diarahkan ke /login. Setelah login, mereka bisa melihat daftar postingan dari controller.

Langkah Selanjutnya

  • Pelajari middleware lain seperti guest atau throttle.
  • Buat middleware kustom untuk kebutuhan spesifik, seperti memeriksa role pengguna.
  • Baca dokumentasi Middleware untuk fitur seperti middleware groups.

Selamat! Kamu sudah menguasai dasar Middleware di Laravel untuk melindungi rute!

Share this

Facebook Whatsapp