Lewati ke konten utama

API Sanctum (Default)

Catatan: Starter kit ini menggunakan Laravel Sanctum untuk autentikasi API secara default. Jika Anda ingin menggunakan JWT silahkan cari tahu sendiri, atau tunggu saya buat dokumentasi migrasi.

1. Autentikasi API dengan Sanctum

Laravel Sanctum menyediakan sistem token-based authentication yang ringan dan aman. Cara kerja dasarnya adalah:

  1. Client mengirimkan request login dengan email dan password.
  2. Server melakukan validasi, lalu mengembalikan personal access token.
  3. Client menyertakan token ini di header setiap request API:
Authorization: Bearer {token}

Instalasi dan Referensi


2. Struktur Response JSON

Semua endpoint API pada starter kit ini mengembalikan response JSON dengan format standar sebagai berikut:

{
"message": "Deskripsi singkat response",
"data": {
// objek data spesifik endpoint
},
"errors": null
}
  • success: boolean, menandakan apakah request berhasil.
  • message: string, deskripsi singkat.
  • data: objek berisi data endpoint (bisa kosong {} atau array []).
  • errors: objek berisi error jika ada; null jika tidak ada.

Contoh response sukses login:

{
"message": "Login berhasil",
"data": {
"user": {
"id": 1,
"name": "Kaesa",
"email": "[email protected]"
},
"token": "1|ABCD1234TOKENEXAMPLE"
},
"errors": null
}

Contoh response gagal login:

{
"message": "Email atau password salah",
"data": {},
"errors": {
"email": ["Email tidak ditemukan"]
}
}

3. Cara Menggunakan Sanctum

  1. Login / Mendapatkan Token
POST /api/login
Content-Type: application/json

{
"email": "[email protected]",
"password": "password123"
}

Response akan mengembalikan token yang harus digunakan di header Authorization.

  1. Mengakses Endpoint yang Dilindungi
GET /api/user
Authorization: Bearer {token}
  1. Logout / Mencabut Token
POST /api/logout
Authorization: Bearer {token}

Token yang digunakan akan dicabut, dan client harus login ulang untuk mendapatkan token baru.


Migrasi ke JWTs (Masih Perencanaan)

Jika ingin mengganti Sanctum dengan JWT, nanti yaa saya buat dokumentasinya.