API Kimlik Doğrulama
API erişimi için kimlik doğrulama yöntemleri
API Kimlik Doğrulama
Cvisioner API'ye erişim için tüm isteklerde geçerli bir kimlik doğrulama bilgisi gönderilmelidir. Kimlik doğrulama Supabase Auth altyapısı üzerinden sağlanır ve iki temel yöntem desteklenir.
1. JWT Bearer Token
Kullanıcı oturumu açtığında Supabase Auth tarafından bir JWT (JSON Web Token) oluşturulur. Bu token, API isteklerinde Authorization başlığında gönderilir.
curl -X GET "https://api.cvisioner.com/v1/profile.me" \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..." \
-H "Content-Type: application/json"Token Elde Etme
Supabase Auth istemcisi üzerinden oturum açarak token alabilirsiniz:
import { createClient } from "@supabase/supabase-js";
const supabase = createClient(
"https://your-project.supabase.co",
"your-anon-key"
);
// E-posta ile giriş
const { data, error } = await supabase.auth.signInWithPassword({
email: "user@example.com",
password: "your-password",
});
// JWT token
const token = data.session?.access_token;Token Yenileme
JWT token'ların süresi 1 saat sonra dolar. Supabase istemcisi otomatik yenileme yapar, ancak sunucu tarafında manuel yenileme gerekebilir:
const { data, error } = await supabase.auth.refreshSession();
const newToken = data.session?.access_token;Token süresi dolduğunda API 401 Unauthorized yanıtı döner. Bu yanıtı aldığınızda token'ı yenileyip isteği tekrarlayın.
2. API Anahtarı
Sunucudan sunucuya (server-to-server) iletişim için API anahtarları kullanılır. API anahtarları uzun ömürlüdür ve kullanıcı oturumuna bağlı değildir.
Anahtar Oluşturma
- Yönetim Paneli > Ayarlar > API Anahtarları
- Yeni Anahtar Oluştur butonuna tıklayın
- İsim ve izin kapsamını (scope) belirleyin
- Anahtarı güvenli bir yere kaydedin
Kullanım
curl -X GET "https://api.cvisioner.com/v1/jobs.list" \
-H "Authorization: Bearer cvs_live_abc123def456..." \
-H "Content-Type: application/json"Anahtar Formatı
| Ortam | Prefix | Örnek |
|---|---|---|
| Production | cvs_live_ | cvs_live_abc123def456... |
| Test | cvs_test_ | cvs_test_xyz789ghi012... |
Dikkat: API anahtarlarını kaynak kodunuzda veya istemci tarafında asla açık olarak yazmayın. Ortam değişkenleri kullanın.
3. OAuth 2.0 (Üçüncü Parti Uygulamalar)
Üçüncü parti uygulamalar için OAuth 2.0 Authorization Code akışı desteklenir:
Akış
- Kullanıcıyı yetkilendirme sayfasına yönlendirin:
https://auth.cvisioner.com/authorize?
client_id=YOUR_CLIENT_ID&
redirect_uri=https://yourapp.com/callback&
response_type=code&
scope=read:jobs read:applications-
Kullanıcı onay verdikten sonra callback URL'inize
codeparametresi ile yönlendirilir -
Kodu token ile değiştirin:
curl -X POST "https://auth.cvisioner.com/token" \
-H "Content-Type: application/json" \
-d '{
"grant_type": "authorization_code",
"code": "AUTH_CODE",
"client_id": "YOUR_CLIENT_ID",
"client_secret": "YOUR_CLIENT_SECRET",
"redirect_uri": "https://yourapp.com/callback"
}'- Yanıtta
access_tokenverefresh_tokendöner
İzin Kapsamları (Scopes)
| Scope | Açıklama |
|---|---|
read:jobs | İş ilanlarını okuma |
write:jobs | İş ilanı oluşturma/düzenleme |
read:applications | Başvuruları okuma |
write:applications | Başvuru gönderme |
read:profile | Profil bilgilerini okuma |
write:profile | Profil güncelleme |
Güvenlik Önerileri
- API anahtarlarını ortam değişkenlerinde saklayın, kaynak koduna yazmayın
- Production ortamında yalnızca
cvs_live_prefix'li anahtarlar kullanın - Kullanılmayan anahtarları yönetim panelinden iptal edin
- Token yenileme mantığını uygulamanıza mutlaka ekleyin
- OAuth uygulamalarında PKCE akışını tercih edin
- Tüm istekleri HTTPS üzerinden gönderin