Laravel 12 CRUD (MySQL + JWT)
#14 Finishing – Uji Coba Lengkap dan Eksplorasi
Sekarang waktunya untuk menguji semua fitur secara menyeluruh dan memastikan tidak ada celah keamanan. Setelah itu, kita akan eksplorasi ide-ide untuk mengembangkan aplikasi lebih lanjut. Mari kita pastikan semuanya berjalan dengan sempurna! 🧪
Checklist Uji Coba Lengkap
1 Registrasi User Baru
- Endpoint:
POST /api/registerdengan body JSON: name, email, password, password_confirmation - Respons sukses 201, token JWT diberikan langsung
- Email yang sudah terdaftar akan ditolak (validasi unique)
- Password minimal 6 karakter dan harus match dengan konfirmasi
2 Login Mendapatkan Token
- Endpoint:
POST /api/logindengan body JSON: email, password - Respons sukses 200, token JWT dikembalikan
- Email/password salah → 401 Unauthorized dengan pesan error
3 Akses Endpoint CRUD Siswa (dilindungi)
- Setiap request ke
/api/siswaharus menyertakan token di header Authorization: Bearer {token} - Tanpa token → 401 Unauthorized
- Dengan token valid → akses diterima
- Uji semua method: GET (index, show), POST (store), PUT (update), DELETE (destroy)
- Pastikan data siswa hanya yang dimiliki user yang login (jika sudah implementasi relasi)
4 Validasi Input pada CRUD
- Coba tambah siswa tanpa field nama → error validasi (required)
- Pastikan pesan error jelas dan status 422 Unprocessable Entity
5 Logout dan Refresh Token
- Endpoint
POST /api/logoutdengan token valid → token menjadi invalid - Setelah logout, token tidak bisa digunakan lagi
- Endpoint
POST /api/refreshdengan token valid → token baru dikembalikan, token lama tetap valid hingga kadaluarsa
6 Keamanan: SQL Injection & XSS
- Laravel menggunakan Query Builder dan Eloquent yang secara otomatis melakukan parameter binding, sehingga SQL Injection terhindarkan
- Input pada JSON akan di-escape saat ditampilkan (untuk API, respons JSON otomatis aman)
7 Manajemen Token
- Token memiliki masa berlaku (default 1 jam), dapat diubah di
config/jwt.php(ttl) - Token tidak boleh dibagikan antar pengguna
- Gunakan HTTPS di production untuk mengamankan transmisi token
Kamu telah berhasil membuat API CRUD lengkap dengan autentikasi JWT menggunakan Laravel 12, MySQL, dan tymon/jwt-auth! 🌟
Eksplorasi Lebih Lanjut
💡 Kini setelah aplikasi dasar selesai, kamu bisa mengembangkannya lebih jauh. Berikut beberapa ide seru:
- 📸 Upload Foto Siswa: Tambahkan kolom foto, gunakan fitur upload file Laravel (Storage).
- 🔍 Filter & Pencarian: Tambahkan parameter query untuk mencari siswa berdasarkan nama atau kelas.
- 📄 Pagination: Gunakan
paginate()pada method index untuk membatasi jumlah data per halaman. - 📊 Dashboard Statistik: Buat endpoint yang mengembalikan jumlah siswa per kelas, dll.
- 👥 Role dan Permission: Tambahkan level user (admin, user biasa) dengan middleware khusus.
- 📧 Verifikasi Email: Gunakan fitur bawaan Laravel untuk memverifikasi email sebelum login.
- 📱 Integrasi Frontend: Hubungkan API dengan aplikasi React, Vue, atau mobile (Flutter, React Native).
Pesan Penutup
Kamu telah menyelesaikan perjalanan panjang dari persiapan lingkungan, membuat proyek, konfigurasi database, migration, model, controller, autentikasi JWT, hingga proteksi endpoint. Ini adalah pencapaian luar biasa! 🌟
Ingatlah bahwa setiap programmer hebat pernah memulai dari nol. Yang terpenting adalah terus mencoba, tidak takut salah, dan selalu penasaran. Jika ada error, baca pesannya, cari tahu penyebabnya, dan perbaiki. Itulah cara belajar yang sebenarnya.
Selamat berpetualang dengan kode! 🚀
(Link akan aktif saat artikel sebelumnya terbit)