Kimlik Doğrulama
Rabisu Bayi API HTTP Basic Authentication kullanır. Her istekte API Key (kullanıcı adı) ve API Secret (şifre) gönderilir. JWT veya oturum (session) kullanılmaz — API tamamen durumsuzdur (stateless).
Kimlik Bilgileri
Bayi olduğunuzda size iki değer verilir:
| Alan | Örnek | Rol |
|---|---|---|
| API Key | rsk_live_ab55mtkb7azdr1pyh5xs56whcab4pjv9 | Kullanıcı adı |
| API Secret | rsks_zfe4yk848aa737k3s1q1h3mmnd963jk6651fcc3 | Şifre |
Önemli: API Secret yalnızca bir kez gösterilir. Güvenli bir yerde saklayın. Kaybederseniz secret'ı yenilemeniz (rotate) veya yeni anahtar oluşturmanız gerekir.
İstek Örneği
Basic Auth başlığı Authorization: Basic base64(api_key:api_secret) biçimindedir.
Çoğu HTTP istemcisi bunu sizin için üretir:
curl -u "rsk_live_ab55mtkb7azdr1pyh5xs56whcab4pjv9:rsks_zfe4yk848..." \
https://api.rabisu.com/api/v1/auth/me
PHP (cURL) örneği:
$ch = curl_init('https://api.rabisu.com/api/v1/auth/me');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERPWD, $apiKey . ':' . $apiSecret);
$response = curl_exec($ch);
Başarısız Kimlik Doğrulama
Kimlik bilgileri eksik veya hatalıysa 401 Unauthorized döner. Güvenlik gereği tüm hata durumları aynı genel mesajı verir (hangi alanın yanlış olduğu sızdırılmaz):
{
"success": false,
"error": {
"code": "unauthorized",
"message": "Kimlik doğrulama başarısız."
},
"meta": { "trace_id": "...", "timestamp": "..." }
}
401 yanıtlarında RFC 7235 uyarınca şu başlık da döner:
WWW-Authenticate: Basic realm="Rabisu Reseller API", charset="UTF-8"
Güvenlik Notları
- API Secret'ı asla istemci tarafı (tarayıcı) kodunda kullanmayın. API yalnızca sunucudan-sunucuya (server-to-server) çağrılar için tasarlanmıştır.
Authorizationbaşlığını hiçbir loga düz metin yazmayın.- Secret sızması durumunda anahtarı derhal yenileyin (rotate) veya iptal edin (revoke).
- IP whitelist tanımlıysa yalnızca izin verilen IP'lerden erişebilirsiniz.
Ana Uç Nokta: GET /auth/me
Kimlik bilgilerinizi doğrulamak için en basit uç nokta budur. Anahtarın sahibi,
izinleri ve auto_apply_credit bayrağını döner:
{
"success": true,
"data": {
"reseller_id": 42,
"name": "Örnek Bayi",
"permissions": ["*"],
"auto_apply_credit": true,
"last_used_ip": "203.0.113.5"
},
"meta": { "trace_id": "...", "timestamp": "..." }
}