Ana içeriğe geç

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ÖrnekRol
API Keyrsk_live_ab55mtkb7azdr1pyh5xs56whcab4pjv9Kullanıcı adı
API Secretrsks_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.
  • Authorization baş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": "..." }
}