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."
}