Lewati ke konten utama

Autentikasi

API GoValid mendukung beberapa metode autentikasi untuk berbagai kasus penggunaan.

Metode Autentikasi

MetodeKasus PenggunaanCocok Untuk
JWT Bearer TokenSesi penggunaAplikasi mobile, klien web
API KeyServer-ke-serverIntegrasi backend
SessionBrowserPanel admin web

JWT Bearer Token

JSON Web Tokens untuk request yang diautentikasi pengguna.

Mendapatkan Token

curl -X POST https://api.govalid.org/api/v1/auth/login/ \
-H "Content-Type: application/json" \
-d '{
"email": "[email protected]",
"password": "your_password"
}'

Respons:

{
"access": "eyJ0eXAiOiJKV1QiLC...",
"refresh": "eyJ0eXAiOiJKV1QiLC...",
"user": {
"id": 123,
"email": "[email protected]"
}
}

Menggunakan Token

Sertakan token di header Authorization:

curl https://api.govalid.org/api/v1/qr/ \
-H "Authorization: Bearer eyJ0eXAiOiJKV1QiLC..."

Masa Berlaku Token

Tipe TokenMasa Berlaku
Access Token60 menit
Refresh Token7 hari

Refresh Token

curl -X POST https://api.govalid.org/api/v1/auth/token/refresh/ \
-H "Content-Type: application/json" \
-d '{
"refresh": "eyJ0eXAiOiJKV1QiLC..."
}'

API Keys

Untuk integrasi server-ke-server tanpa konteks pengguna.

Membuat API Key

  1. Masuk ke Dashboard GoValid
  2. Navigasi ke AkunAPI Keys
  3. Klik Create New Key
  4. Atur izin dan masa berlaku
  5. Salin key (hanya ditampilkan sekali)

Menggunakan API Keys

Opsi 1: Format Bearer (direkomendasikan)

curl https://api.govalid.org/api/v1/qr/ \
-H "Authorization: Bearer gv_your_api_key_here"

Opsi 2: Header X-API-Key

curl https://api.govalid.org/api/v1/qr/ \
-H "X-API-Key: gv_your_api_key_here"

Opsi 3: Format legacy

curl https://api.govalid.org/api/v1/qr/ \
-H "Authorization: Api-Key gv_your_api_key_here"

Fitur API Key

  • Izin ter-scoped (read, write, delete)
  • Rate limiting per key
  • Pelacakan penggunaan dan analitik
  • Tanggal kedaluwarsa opsional
  • Dapat dicabut kapan saja

Praktik Terbaik Keamanan

Yang Harus Dilakukan

  • Simpan token/key dengan aman (environment variables, secret manager)
  • Gunakan HTTPS untuk semua request
  • Implementasikan refresh token sebelum kedaluwarsa
  • Atur izin API key yang sesuai
  • Rotasi API key secara berkala

Yang Tidak Boleh Dilakukan

  • Jangan pernah mengekspos token di kode client-side
  • Jangan commit API key ke version control
  • Jangan bagikan key antar environment
  • Jangan gunakan token berumur panjang untuk web app

Respons Error

401 Unauthorized

{
"detail": "Authentication credentials were not provided."
}

Penyebab:

  • Header Authorization tidak ada
  • Token tidak valid atau kedaluwarsa
  • API key dicabut

403 Forbidden

{
"detail": "You do not have permission to perform this action."
}

Penyebab:

  • Izin API key tidak cukup
  • Pembatasan akun
  • Fitur tidak tersedia di paket Anda

Langkah Selanjutnya