Ana içeriğe geç

Kimlik Doğrulama

Kompanse CMS API, üç farklı erişim seviyesi kullanır. Her seviye farklı header kombinasyonları gerektirir.

Admin Erişimi​

Admin endpointlerine erişmek için JWT Bearer token gereklidir.

1. Token alma:

POST /api/admin/auth/login
Content-Type: application/json

{
"email": "[email protected]",
"password": "your-password"
}

2. Token kullanımı:

Authorization: Bearer eyJhbGciOiJIUzI1NiIs...

Tenant Erişimi​

Tenant endpointleri hem JWT token hem de X-Api-Key header'ı gerektirir.

1. Token alma:

POST /api/tenant/auth/login
X-Api-Key: customer-api-key-here
Content-Type: application/json

{
"email": "[email protected]",
"password": "your-password"
}

2. Token kullanımı:

Authorization: Bearer eyJhbGciOiJIUzI1NiIs...
X-Api-Key: customer-api-key-here
bilgi

X-Api-Key header'ı, isteğin hangi müşteriye (tenant) ait olduğunu belirler. Her müşteriye özgü bir API anahtarı atanır.

Public Erişim​

Public endpointler yalnızca X-Api-Key header'ı gerektirir. JWT token gerekmez.

GET /api/public/blog/posts
X-Api-Key: customer-api-key-here

McpToken Erişimi​

McpToken, tenant'lara JWT login gerekmeden API erişimi sağlayan alternatif bir authentication yöntemidir. Özellikle MCP (Model Context Protocol) istemcileri için tasarlanmıştır.

X-Mcp-Token: mcp-token-here

Avantajları:

  • Tenant kullanıcı email/password gerekmez
  • Expire tarihi ile otomatik geçersizleşme
  • JWT token alışverişi yapılmaz
bilgi

McpToken ile erişimde hem tenant hem de public endpoint'ler kullanılabilir. McpToken öncelikli olarak değerlendirilir, bulunamazsa fallback olarak X-Api-Key kontrol edilir.

Token Yapısı​

JWT token'lar aşağıdaki bilgileri içerir:

ClaimAçıklama
nameidKullanıcı ID
emailE-posta adresi
roleAdmin veya TenantUser
TenantIdTenant kullanıcı token'larında müşteri ID
expToken süre sonu

Hata Yanıtları​

401 Unauthorized — Token eksik veya geçersiz:

{
"success": false,
"data": null,
"message": "Geçersiz veya eksik token."
}

403 Forbidden — Yetki yetersiz:

{
"success": false,
"data": null,
"message": "Bu işlem için yetkiniz bulunmamaktadır."
}