Ana içeriğe geç

Kimlik Doğrulama

API v1 tüm endpoint'lerinde API token tabanlı kimlik doğrulama kullanır.

API Token Nedir?

API token'ları, sisteminize programatik erişim sağlamak için kullanılan güvenli anahtarlardır. Her token belirli izinlere sahip olabilir ve belirli bir mekan (venue) ile sınırlandırılabilir.

Token Oluşturma

API token'ları admin panelinden oluşturulur:

  1. Admin paneline giriş yapın
  2. Ayarlar > API Erişimi bölümüne gidin
  3. Yeni Token Oluştur butonuna tıklayın
  4. Token için bir isim verin
  5. İzinleri seçin (read, write, delete)
  6. İsteğe bağlı olarak belirli bir mekan ile sınırlandırın
  7. Token'ı güvenli bir yerde saklayın (sadece bir kez gösterilir)

Token Kullanımı

Authorization Header

Tüm API isteklerinde token'ı Authorization header'ında Bearer formatında gönderin:

Authorization: Bearer your-api-token-here

cURL Örneği

curl -X GET "http://localhost:3000/api/v1/hotspot-users?venueId=507f1f77bcf86cd799439011" \
-H "Authorization: Bearer your-api-token-here"

JavaScript Örneği

const response = await fetch('http://localhost:3000/api/v1/hotspot-users?venueId=507f1f77bcf86cd799439011', {
headers: {
'Authorization': 'Bearer your-api-token-here',
'Content-Type': 'application/json'
}
});

const data = await response.json();

Python Örneği

import requests

headers = {
'Authorization': 'Bearer your-api-token-here',
'Content-Type': 'application/json'
}

response = requests.get(
'http://localhost:3000/api/v1/hotspot-users',
headers=headers,
params={'venueId': '507f1f77bcf86cd799439011'}
)

data = response.json()

İzin Seviyeleri

API token'ları üç farklı izin seviyesine sahip olabilir:

Read (Okuma)

  • GET endpoint'lerini kullanabilir
  • Veri listeleme ve görüntüleme işlemleri yapabilir
  • Veri değiştiremez

Write (Yazma)

  • GET ve POST, PUT endpoint'lerini kullanabilir
  • Yeni kayıt oluşturabilir
  • Mevcut kayıtları güncelleyebilir
  • Kayıt silemez

Delete (Silme)

  • Tüm endpoint'leri kullanabilir
  • DELETE endpoint'lerini çağırabilir
  • Kayıt silebilir

Venue Sınırlaması

Token'lar belirli bir mekan veya mekanlar (venue & venues) ile sınırlandırılabilir. Bu durumda:

  • Token sadece belirtilen venue & venues için kullanılabilir
  • Farklı bir venue ID'si kullanılamaz

Token venue ile sınırlandırılmamışsa, tüm mekanlarda yetki sahibi olur

Hata Durumları

401 Unauthorized

Token eksik veya geçersiz olduğunda:

{
"success": false,
"message": "Unauthorized"
}

Çözüm:

  • Token'ın doğru gönderildiğinden emin olun
  • Token'ın geçerli olduğunu kontrol edin
  • Token formatının Bearer <token> şeklinde olduğunu doğrulayın

403 Forbidden

Token yeterli izne sahip olmadığında:

{
"success": false,
"message": "Forbidden"
}

Çözüm:

  • Token'ın gerekli izinlere sahip olduğunu kontrol edin
  • Admin panelinden token izinlerini güncelleyin

Güvenlik Önerileri

  1. Token'ı Güvenli Saklayın: Token'ları asla public repository'lere commit etmeyin
  2. Environment Variables: Token'ları environment variable olarak saklayın
  3. HTTPS Kullanın: Production ortamında mutlaka HTTPS kullanın
  4. Token Rotasyonu: Düzenli olarak token'ları yenileyin
  5. Minimum İzin Prensibi: Token'lara sadece gerekli minimum izinleri verin
  6. Token İzleme: Kullanılmayan token'ları silin

Token Yönetimi

Admin panelinden:

  • Mevcut token'ları görüntüleyebilirsiniz
  • Token izinlerini güncelleyebilirsiniz
  • Token'ları silebilirsiniz
  • Token kullanım istatistiklerini görüntüleyebilirsiniz

Sonraki Adımlar