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 Akun → API 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​