Tutorial Buat Auth JWT Login Laravel 12 React JS: Panduan Lengkap & Modern

Membangun aplikasi web modern yang aman dan responsif adalah impian setiap developer. Salah satu tantangan terbesar adalah mengelola autentikasi pengguna secara efisien. Dalam artikel ini, kita akan membahas secara mendalam mengenai tutorial buat auth jwt login laravel 12 react js yang dirancang untuk membantu Anda membangun sistem login yang scalable dan aman.

Laravel 12, sebagai versi terbaru dari framework PHP paling populer, menawarkan berbagai peningkatan performa. Dikombinasikan dengan React JS di sisi frontend, Anda dapat menciptakan User Experience (UX) yang sangat mulus. Menggunakan JSON Web Token (JWT) memungkinkan kita melakukan autentikasi tanpa perlu menyimpan session di server (stateless), yang sangat ideal untuk arsitektur API modern.

Mengapa Memilih Laravel 12, React, dan JWT?

Dalam ekosistem pengembangan web saat ini, kecepatan dan keamanan adalah prioritas utama. Tutorial buat auth jwt login laravel 12 react js ini relevan karena tiga alasan utama:

  • Scalability: JWT tidak memerlukan penyimpanan session di server, sehingga aplikasi Anda lebih mudah diskalakan secara horizontal.
  • Modernitas: Laravel 12 membawa fitur terbaru dari PHP 8.2+, memastikan kode Anda tetap mutakhir dan efisien.
  • Reaktivitas: React JS memberikan antarmuka yang cepat tanpa perlu reload halaman secara penuh (SPA – Single Page Application).

Menurut data statistik penggunaan framework, Laravel tetap menjadi pilihan utama bagi perusahaan enterprise karena dokumentasinya yang lengkap dan ekosistemnya yang kuat seperti Eloquent ORM dan Middleware yang memudahkan pengelolaan autentikasi.

Persiapan Lingkungan Pengembangan

Sebelum memulai, pastikan perangkat lokal Anda sudah terpasang perangkat lunak berikut:

  • PHP versi 8.2 atau lebih tinggi.
  • Composer (Dependency Manager untuk PHP).
  • Node.js dan NPM/Yarn (untuk React).
  • Database (MySQL atau PostgreSQL).
  • Postman atau Insomnia untuk pengujian API.

Langkah 1: Setup Backend Laravel 12

Pertama, kita akan membuat proyek Laravel baru. Buka terminal Anda dan jalankan perintah berikut:

composer create-project laravel/laravel:^12.0 backend-api

Setelah proses instalasi selesai, masuk ke direktori proyek dan konfigurasikan file .env Anda untuk menghubungkan ke database:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=db_laravel_jwt
DB_USERNAME=root
DB_PASSWORD=

Jangan lupa untuk menjalankan migrasi database bawaan Laravel agar tabel users terbuat:

php artisan migrate

Langkah 2: Konfigurasi JWT Authentication

Untuk tutorial buat auth jwt login laravel 12 react js ini, kita akan menggunakan package php-open-source-saver/jwt-auth, yang merupakan fork populer dari tymon/jwt-auth yang mendukung Laravel versi terbaru.

Instal package melalui composer:

composer require php-open-source-saver/jwt-auth

Publish file konfigurasi JWT:

php artisan vendor:publish --provider="PHPOpenSourceSaverJWTAuthProvidersLaravelServiceProvider"

Generate kunci rahasia JWT (JWT Secret):

php artisan jwt:secret

Selanjutnya, buka file app/Models/User.php dan implementasikan interface JWTSubject:


use PHPOpenSourceSaverJWTAuthContractsJWTSubject;

class User extends Authenticatable implements JWTSubject
{
    public function getJWTIdentifier()
    {
        return $this->getKey();
    }

    public function getJWTCustomClaims()
    {
        return [];
    }
}

Langkah 3: Membuat Controller dan Route API

Sekarang kita akan membuat AuthController yang menangani logika registrasi, login, dan logout. Jalankan perintah:

php artisan make:controller AuthController

Di dalam AuthController.php, tambahkan metode login yang akan mengembalikan token JWT jika kredensial benar:

“Penting untuk selalu menggunakan hashing Bcrypt untuk password dan melakukan validasi input yang ketat pada sisi backend untuk mencegah serangan SQL Injection.”

Berikut adalah potongan kode sederhana untuk fungsi login:


public function login(Request $request)
{
    $credentials = $request->only('email', 'password');
    if (!$token = auth()->attempt($credentials)) {
        return response()->json(['error' => 'Unauthorized'], 401);
    }
    return $this->respondWithToken($token);
}

Daftarkan rute di routes/api.php agar bisa diakses oleh frontend React:


Route::post('login', [AuthController::class, 'login']);
Route::post('logout', [AuthController::class, 'logout']);
Route::get('me', [AuthController::class, 'me']);

Langkah 4: Setup Frontend React JS

Kita akan menggunakan Vite untuk membuat proyek React karena kecepatannya yang luar biasa. Jalankan perintah ini di luar folder backend:

npm create vite@latest frontend-app -- --template react

Setelah itu, instal axios untuk melakukan HTTP request dan react-router-dom untuk navigasi halaman:

npm install axios react-router-dom

Langkah 5: Integrasi Login dan State Management

Dalam tutorial buat auth jwt login laravel 12 react js ini, kunci utamanya adalah bagaimana kita menyimpan token di sisi klien. Cara yang paling umum adalah menyimpannya di localStorage atau cookie.

Buat file Login.jsx dan buat form sederhana. Gunakan Axios untuk mengirim data ke API Laravel:


const handleLogin = async (e) => {
    e.preventDefault();
    try {
        const response = await axios.post('http://localhost:8000/api/login', { email, password });
        localStorage.setItem('token', response.data.access_token);
        // Redirect ke dashboard
    } catch (error) {
        console.error("Login gagal", error);
    }
};

Jangan lupa untuk mengatur CORS di Laravel agar aplikasi React diizinkan mengakses resource API. Anda bisa mengaturnya di file config/cors.php.

Langkah 6: Uji Coba dan Debugging

Setelah semua kode terimplementasi, jalankan server backend dan frontend secara bersamaan:

  • Backend: php artisan serve
  • Frontend: npm run dev

Buka browser dan coba lakukan login. Jika berhasil, Anda akan melihat token JWT tersimpan di Application Tab pada Developer Tools browser Anda. Pastikan setiap request ke endpoint yang diproteksi (seperti /me) menyertakan header Authorization: Bearer {token}.

Tips Keamanan Tambahan

Membangun sistem autentikasi tidak hanya soal fungsionalitas, tapi juga keamanan. Berikut beberapa tips untuk meningkatkan keamanan sistem Anda:

  • HTTPS: Selalu gunakan protokol HTTPS untuk mencegah Man-in-the-Middle (MitM) attacks.
  • Token Expiration: Atur waktu kedaluwarsa token JWT yang singkat (misal: 60 menit) dan gunakan refresh token.
  • CORS Policy: Hanya izinkan domain frontend Anda untuk mengakses API.
  • Input Sanitization: Gunakan validasi bawaan Laravel untuk memastikan data yang masuk sesuai format.

Kesimpulan

Mengikuti tutorial buat auth jwt login laravel 12 react js ini memberikan landasan yang kuat bagi Anda untuk membangun aplikasi web yang profesional. Kita telah belajar cara setup Laravel 12, mengonfigurasi JWT, hingga mengintegrasikannya dengan React JS menggunakan Axios.

Keberhasilan sebuah aplikasi terletak pada detail implementasi keamanannya. Dengan Laravel 12 yang stabil dan React yang dinamis, Anda memiliki kombinasi teknologi terbaik di tahun 2025/2026 ini untuk bersaing di industri teknologi.

Butuh Source Code Lengkap?
Anda dapat mengunduh contoh proyek lengkap dari tutorial ini untuk dipelajari lebih lanjut di mesin lokal Anda.

Download Source Code Tutorial

Terima kasih telah membaca panduan ini. Jika Anda memiliki pertanyaan atau kendala saat mengikuti langkah-langkah di atas, jangan ragu untuk meninggalkan komentar atau menghubungi tim ahli kami.

Tinggalkan komentar