Autentikasi
API GoValid mendukung beberapa metode autentikasi untuk berbagai kasus penggunaan.
Metode Autentikasi
| Metode | Kasus Penggunaan | Cocok Untuk |
|---|---|---|
| JWT Bearer Token | Sesi pengguna | Aplikasi mobile, klien web |
| API Key | Server-ke-server | Integrasi backend |
| Session | Browser | Panel 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,
}
}
Menggunakan Token
Sertakan token di header Authorization:
curl https://api.govalid.org/api/v1/qr/ \
-H "Authorization: Bearer eyJ0eXAiOiJKV1QiLC..."
Masa Berlaku Token
| Tipe Token | Masa Berlaku |
|---|---|
| Access Token | 60 menit |
| Refresh Token | 7 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
- Masuk ke Dashboard GoValid
- Navigasi ke Akun → API Keys
- Klik Create New Key
- Atur izin dan masa berlaku
- 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
- Mulai Cepat - Buat request terautentikasi pertama Anda
- Contoh Kode - Autentikasi dalam berbagai bahasa