X-Tenant header’ı
Tenant’a bağlı tüm endpoint’ler için X-Tenant header’ını gönderin. Değer, ilgili kliniğin sayısal ID’sidir.
İsteğin yapılacağı klinik (tenant) ID’si. Kullanıcının erişim yetkisi olan bir tenant olmalıdır.
Header davranışı
| Durum | Yanıt |
|---|---|
| Header gönderilmedi | 400 Bad Request — "X-Tenant header is required." |
| Token yok / geçersiz | 401 Unauthorized — "Unauthenticated." |
| Tenant mevcut değil veya kullanıcının erişimi yok | 404 Not Found — "Tenant not found." |
| Hepsi geçerli | İstek normal şekilde işlenir |
X-Tenant gerektirmeyen uçlar
Kullanıcının hangi tenant’lara erişebildiğini öğrendiğiniz uçlar doğal olarak tenant-bağımsızdır:
GET /api/v1/account— kullanıcının profiliGET /api/v1/account/tenants— kullanıcının erişebildiği tenant listesiGET/POST /api/v1/account/two-factor/*— 2FA yönetimiGET /api/v1/account/browser-sessions— aktif oturumlarGET /api/v1/exchange-rates— günlük döviz kuru
v1 uçları X-Tenant bekler.
Erişilebilir tenant’ları listeleme
Kullanıcı oturum açtıktan hemen sonra, UI’da bir “klinik seçici” göstermek için tenant listesini çekin:Tipik UX kalıbı: kullanıcı login olduktan sonra tenant seçer, seçilen ID’yi session’da saklarsınız. Her sonraki istekte bu değeri
X-Tenant olarak gönderirsiniz. Kullanıcı başka bir kliniğe geçtiğinde değeri güncellersiniz.Tenant başına veri izolasyonu
- Bir tenant’ın verisi başka tenant’a sızmaz.
X-Tenant: 12ile oluşturduğunuz bir randevuyuX-Tenant: 27ile göremezsiniz. - Ayarlar (randevu, bildirim, chat vb.) tenant bazlıdır.
- Roller ve izinler de tenant bazlıdır — aynı kullanıcı bir tenant’ta Admin, başka tenant’ta Resepsiyonist olabilir. Bkz. Roller & İzinler.
Yanlış tenant’a istek atmak
Kullanıcının erişimi olmayan bir tenant ID’si gönderirseniz404 alırsınız — 403 değil. Bunun nedeni güvenliktir: kullanıcıya başka tenant’ların varlığını ima etmeyiz. Dolayısıyla 404 gördüğünüzde öncelikle şunu kontrol edin:
X-Tenantdeğeri doğru mu?- Kullanıcı token’ın sahibi, bu tenant’ta gerçekten yetkili mi?
- Token’ın scope’ları yaptığınız işlem için yeterli mi? (Yeterli değilse scope hatası
403olarak döner.)
Sık yapılan hatalar
- Global saklama.
X-Tenant’ı SDK’nızda global olarak kablolamak yerine, kullanıcının aktif oturumunda dinamik olarak okumayı tercih edin. - Tenant ID cache. Tenant listesini uzun süreli cache’lemeyin; kullanıcı bir klinikten çıkarılırsa bayat veri gösterirsiniz.
- Yanlış başlık adı. Header adı tam olarak
X-Tenant’tır —X-Tenant-IdveyaTenant-Iddeğil.