Laravel 12 CRUD (MySQL + JWT)
#12 Menguji Autentikasi – Dapatkan Token
Di artikel sebelumnya kita sudah memasang middleware dan melindungi endpoint CRUD. Sekarang saatnya menguji dari awal: registrasi user baru, login untuk mendapatkan token, lalu menggunakan token tersebut untuk mengakses endpoint siswa. Juga kita akan uji kasus error (token salah, token kadaluarsa, dll). Yuk ikuti langkah-langkah di Postman! 🚀
Prasyarat
- ✅ Server Laravel berjalan:
php artisan serve - ✅ Postman terinstall dan siap digunakan
- ✅ Database sudah berisi tabel users dan siswa
Uji Registrasi User Baru
1 Endpoint: POST /api/register
- Buka Postman, buat request baru.
- Method: POST
- URL:
http://localhost:8000/api/register - Tab Body → raw → JSON, masukkan data:
Klik Send. Respons sukses (status 201) akan seperti ini:
Yang perlu dicatat: Setelah registrasi, langsung diberikan token. Simpan token ini (bisa juga nanti login lagi).
email already taken.
Uji Login Mendapatkan Token
2 Endpoint: POST /api/login
- Buat request baru, method POST.
- URL:
http://localhost:8000/api/login - Body (raw JSON):
Respons sukses (status 200):
Salin token yang diterima. Ini akan digunakan untuk autentikasi di endpoint yang dilindungi.
Akses Endpoint CRUD dengan Token (Bearer Token)
3 Contoh: GET semua siswa
- Buat request baru, method GET.
- URL:
http://localhost:8000/api/siswa - Pada tab Authorization, pilih Bearer Token.
- Isi kolom token dengan token yang didapat dari login.
- Klik Send.
Respons sukses (status 200):
Coba juga method lain dengan token yang sama:
- POST /api/siswa (tambah siswa) → body JSON:
{"nama":"Ujang","kelas":"7A","alamat":"Jl. Anggrek"} - GET /api/siswa/{id} → detail
- PUT /api/siswa/{id} → update
- DELETE /api/siswa/{id} → hapus
Uji Tanpa Token (Akses Ditolak)
4 Hapus atau jangan sertakan token di header. Akses GET /api/siswa. Respons:
Status: 401 Unauthorized. Berarti proteksi bekerja dengan baik.
Uji dengan Token Salah atau Kadaluarsa
5 Coba ganti token dengan string acak (misal "abc123") atau token yang sudah dimodifikasi. Akses endpoint. Respons:
Token tidak valid akan ditolak.
/api/refresh (dengan token lama yang masih valid untuk refresh).
Uji Logout (Invalidasi Token)
6 Endpoint: POST /api/logout (dilindungi auth:api)
- Buat request POST ke
http://localhost:8000/api/logout. - Sertakan token yang valid di header Authorization (Bearer Token).
- Klik Send. Respons sukses:
Setelah logout, token menjadi tidak valid. Coba gunakan token yang sama untuk mengakses GET /api/siswa, akan mendapat error 401.
Uji Refresh Token (Opsional)
7 Jika token mendekati kadaluarsa, kita bisa memperpanjang masa aktif tanpa login ulang. Endpoint: POST /api/refresh
- Buat request POST ke
http://localhost:8000/api/refresh. - Sertakan token yang masih valid (belum kadaluarsa) di header Authorization.
- Respons akan memberikan token baru.
Gunakan token baru untuk request selanjutnya.
Ringkasan Endpoint dan Cara Penggunaan
- Registrasi:
POST /api/register(body: name, email, password, password_confirmation) → token langsung diberikan - Login:
POST /api/login(body: email, password) → dapatkan token - Logout:
POST /api/logout(Bearer token) → invalidasi token - Refresh:
POST /api/refresh(Bearer token) → dapatkan token baru - Profil:
GET /api/me(Bearer token) → lihat data user - CRUD Siswa: semua endpoint
/api/siswadilindungi, harus menyertakan Bearer token
📌 Catatan Penting: Token JWT harus disimpan dengan aman dan jangan pernah dibagikan. Untuk keperluan pengembangan, cukup simpan di Postman environment atau variabel.
(Link akan aktif saat artikel sebelumnya dan selanjutnya terbit)