Tutorial Laravel 12 JWT #7 Test API Register

Belajar autentikasi JWT (JSON Web Token) di Laravel 12 untuk membangun REST API yang aman dan scalable. Mulai dari konsep dasar JWT, install & konfigurasi paket, pembuatan endpoint login/register, proteksi route dengan middleware, refresh & revoke token, hingga best practice keamanan (token expiry, blacklist, rate limiting). Cocok untuk pemula yang ingin membuat backend API modern dengan Laravel.

✅ Telah dilihat 728 kali

Rating: 5.00 ⭐

... 03 September 2025, 20:09

Pengujian API

Sekarang kita beralih ke tahap pengujian API. Untuk itu kita akan menggunakan Postman. Bagi teman-teman yang belum punya aplikasinya, silakan unduh dan install terlebih dahulu dari situs resminya.

https://www.postman.com/downloads/

Setelah Postman siap digunakan, langkah pertama yang kita lakukan adalah membuat sebuah Collection baru. Collection ini ibarat sebuah “folder” tempat kita menyimpan semua request API agar lebih rapi dan mudah dikelola.

Silakan beri nama collection tersebut, misalnya:

LARAVEL-JWT

Dengan begitu, semua endpoint yang berhubungan dengan autentikasi berbasis JWT akan tersimpan di satu tempat, sehingga tidak tercecer dan lebih mudah saat kita ingin mencoba, membandingkan, atau mendokumentasikannya.


API Register

Langkah pertama dalam pengujian API kita adalah mendaftarkan user baru melalui endpoint register yang sudah kita buat sebelumnya.

Sebelum langsung mencoba di Postman, ada baiknya kita cek dulu daftar rute yang tersedia untuk memastikan bahwa endpoint register memang sudah terdaftar dengan benar. Caranya, buka terminal atau CMD lalu jalankan perintah berikut:

php artisan route:list

Perintah ini akan menampilkan semua rute API yang ada di aplikasi Laravel kita, lengkap dengan method (GET/POST), URI, nama route, dan controller yang menangani request tersebut.

Dari daftar tersebut, kita bisa mencari endpoint dengan pola seperti ini:

POST   api/auth/register   ...   AuthController@register

Jika rute ini sudah muncul, artinya endpoint register siap kita uji di Postman.

Selanjutnya, di Postman kita akan membuat sebuah request baru di dalam collection LARAVEL-JWT dengan detail sebagai berikut:

  • Method → POST

  • URL → http://localhost:8000/api/auth/register

  • Body (Raw) → isi dengan data user baru

    {
      "name": "User Coba",
      "email": "[email protected]",
      "password": "passwordcoba",
      "password_confirmation": "passwordcoba"
    }
    

Setelah semua terisi, silakan klik tombol Send.

Jika konfigurasi sudah benar, Postman akan menampilkan response berupa data user sekaligus token JWT yang dihasilkan. Token inilah yang nantinya akan kita pakai untuk mengakses endpoint lain yang membutuhkan autentikasi.

⚠️ Jangan lupa: sebelum menjalankan uji coba ini, pastikan project Laravel sudah aktif (php artisan serve) dan MySQL juga sudah dijalankan melalui XAMPP atau layanan database lain.


Response Register Sukses

{
  "status": "success",
  "message": "User successfully registered",
  "data": {
    "user": {
      "name": "User Coba",
      "email": "[email protected]",
      "updated_at": "2025-09-09T01:53:25.000000Z",
      "created_at": "2025-09-09T01:53:25.000000Z",
      "id": 3
    },
    "token": {
      "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9....",
      "token_type": "bearer",
      "expires_in": 3600
    }
  }
}

1. Status dan pesan

  • "status": "success" → menandakan request berhasil.
  • "message": "User successfully registered" → pesan informatif bahwa user sudah berhasil didaftarkan.

2. Data User

Objek "user" berisi informasi user yang baru dibuat:

  • name → nama user.
  • email → email yang digunakan saat register.
  • created_at dan updated_at → timestamp kapan user dibuat.
  • id → ID unik user dalam database.

3. Token JWT

Objek "token" berisi kredensial akses JWT yang langsung diberikan:

  • access_token → inilah string panjang JWT yang harus dikirimkan di header setiap request ke endpoint yang dilindungi.

  • token_type → biasanya bernilai "bearer", artinya kita nanti menaruh token di header dengan format:

    Authorization: Bearer <access_token>
    
  • expires_in → durasi token berlaku, di sini 3600 detik = 1 jam. Setelah itu, token bisa diperbarui menggunakan endpoint refresh.

Dengan respons ini, user tidak hanya berhasil didaftarkan, tapi juga langsung login otomatis karena token sudah diberikan. Jadi user tidak perlu melakukan login manual lagi setelah register.


Response Error Register

{
  "status": "error",
  "message": "Validation failed",
  "errors": {
    "name": [
      "The name field is required."
    ],
    "email": [
      "The email field is required."
    ],
    "password": [
      "The password field is required."
    ]
  }
}

1. Status dan pesan umum

  • "status": "error" → menandakan request gagal diproses.
  • "message": "Validation failed" → Laravel memberi tahu bahwa data yang dikirim tidak memenuhi aturan validasi.

2. Detail kesalahan

Bagian "errors" berisi daftar field yang bermasalah, lengkap dengan pesan error yang spesifik:

  • name → tidak boleh kosong (The name field is required.).
  • email → wajib diisi (The email field is required.).
  • password → juga wajib diisi (The password field is required.).

Laravel menuliskan pesan ini secara otomatis berdasarkan aturan validasi yang sudah kita definisikan di controller.


Response Error (Email Duplikat)

{
  "status": "error",
  "message": "Validation failed",
  "errors": {
    "email": [
      "The email has already been taken."
    ]
  }
}

1. Status dan pesan umum

  • "status": "error" → menandakan request tidak berhasil diproses.
  • "message": "Validation failed" → artinya ada aturan validasi yang gagal terpenuhi.

2. Detail kesalahan

  • Field yang bermasalah adalah email.
  • Pesan "The email has already been taken." menunjukkan bahwa alamat email yang kita masukkan sudah digunakan oleh user lain, sehingga tidak bisa dipakai ulang.

Kesimpulan

Sampai di sini kita sudah berhasil:

  1. Menjalankan endpoint register di Postman.
  2. Melihat contoh response berhasil (user baru + token JWT).
  3. Menganalisis contoh response gagal karena validasi (field kosong, email sudah dipakai, dll).

Dari sini kita belajar bahwa setiap endpoint tidak hanya perlu berhasil saja, tetapi juga harus punya mekanisme error handling yang jelas supaya pengguna paham apa yang salah.


Nah, setelah user bisa mendaftar, tahap berikutnya tentu adalah login. Endpoint login akan kita gunakan untuk menukar kombinasi email + password menjadi JWT token. Token ini yang nantinya dipakai untuk mengakses resource yang bersifat protected, misalnya logoutmerefresh, atau bahkan endpoint products.

Dengan kata lain:

  • Register → membuat akun baru.
  • Login → mengautentikasi akun yang sudah ada dan memberikan token akses.

Daftar eBook