Laravel 12 CRUD (MySQL + JWT)
#8 Install dan Konfigurasi JWT (tymon/jwt-auth)
JWT (JSON Web Token) adalah metode autentikasi yang populer untuk API. Pengguna akan login dan mendapatkan token, lalu token tersebut digunakan untuk mengakses endpoint yang dilindungi.
Kita akan menggunakan package tymon/jwt-auth, package JWT paling populer untuk Laravel. Yuk kita pasang! 🚀
Langkah 1: Install Package JWT via Composer
1 Buka terminal/CMD di folder proyek siswaapi. Jalankan perintah:
Perintah ini akan mengunduh dan menginstall package JWT beserta dependensinya. Tunggu hingga proses selesai.
Langkah 2: Publikasikan Konfigurasi JWT
2 Setelah package terinstall, kita perlu mempublikasikan file konfigurasi JWT. Jalankan perintah:
Perintah ini akan membuat file config/jwt.php yang berisi semua pengaturan JWT.
Langkah 3: Generate Secret Key JWT
3 JWT membutuhkan secret key untuk menandatangani token. Generate key dengan perintah:
Perintah ini akan menghasilkan kunci rahasia dan secara otomatis menambahkannya ke file .env sebagai JWT_SECRET=....
Langkah 4: Konfigurasi Model User
4 Agar JWT dapat bekerja dengan model User kita, kita perlu menambahkan trait JWTSubject ke model User. Buka app/Models/User.php dan ubah menjadi:
Penjelasan:
- Implement
JWTSubject→ memberi tahu JWT cara mengambil identifier user. getJWTIdentifier()→ mengembalikan primary key user (id).getJWTCustomClaims()→ untuk menambahkan klaim khusus (opsional).
Langkah 5: Konfigurasi Auth Guard untuk API
5 Kita perlu mengatur Laravel agar menggunakan guard api dengan driver jwt. Buka config/auth.php. Cari bagian guards dan ubah guard api menjadi:
Jika tidak ada guard api, tambahkan seperti di atas.
users sudah benar (mengarah ke model User). Secara default sudah benar.
Langkah 6: Uji Konfigurasi (Opsional)
6 Untuk memastikan JWT sudah terkonfigurasi dengan benar, kita bisa menjalankan perintah:
Kemudian coba:
Jika muncul token string yang panjang, berarti konfigurasi berhasil! Keluar dengan exit.
php artisan migrate (tabel users sudah ada) dan setidaknya ada satu user di database.
Ringkasan Langkah
- ✅ Install package:
composer require tymon/jwt-auth - ✅ Publikasikan konfigurasi:
php artisan vendor:publish --provider="Tymon\JWTAuth\Providers\LaravelServiceProvider" - ✅ Generate secret key:
php artisan jwt:secret - ✅ Update model
Userdengan traitJWTSubjectdan implement method. - ✅ Ubah guard
apidiconfig/auth.phpmenjadi driverjwt. - ✅ Uji dengan Tinker.
📌 Ingat: JWT_SECRET di file .env harus dijaga kerahasiaannya. Jangan commit ke repository publik!
(Link akan aktif saat artikel sebelumnya dan selanjutnya terbit)