API Kimlik Doğrulama ve İzinler
Anahtar nasıl üretilir, istekte nasıl taşınır ve izinleri nereye erişebileceğine nasıl karar verir.
Genel Bakış
Kimlik isteyen her çağrı yalnızca bir API anahtarı taşır. Oturum ve çerez yok, dolayısıyla çağrı bir sunucudan da dizüstünden de tarayıcı sekmesinden de aynı davranır.
Anahtar üç şey tutar: ait olduğu adres, kendisine verilen izin listesi ve dakika başına istek bütçesi. Üçü her istekte bu sırayla kontrol edilir; hayır diyen ilki çağrıyı bitirir.
Anahtarın kendisi saklanmaz. Kurulumda duran şey, onun özeti ve gösterim için ilk birkaç karakteridir. Kaybolan bir anahtar panelden geri alınamaz, yalnızca yenisiyle değiştirilir.
Ön Koşullar
- Yönetim anahtarı için panel erişimi, müşteri anahtarı için bir müşteri hesabı.
- Anahtarı saklayacağınız, kaynak kod deponuz olmayan bir yer.
Adım Adım
Anahtar Üretin
- Yönetim adresi için panelde Ayarlar → API Kimlik Bilgileri ekranını açın ve bir kimlik bilgisi oluşturun.
- Müşteri adresi için müşteri kendi hesabındaki API Kimlik Bilgileri sayfasından,
/api-credentialsadresinde oluşturur. - Anahtarı onay ekranından kopyalayın. Bir kez gösterilir, bir daha gösterilmez.
İzinleri Verin
- Anahtarın ihtiyaç duyduğu eylemleri işaretleyin. Her onay kutusu bir
Grup/Eylemçiftidir; ucun dokümanındaki adla aynıdır. - İşi gören en dar kümeyi verin. Yalnızca fatura okuyan bir anahtar müşterilerinize karşı kullanılamaz.
- İsterseniz o anahtara özel dakikalık bütçeyi yükseltin ya da düşürün; boş bırakmak kurulum varsayılanı demektir.
Gönderin ve Doğrulayın
- Anahtarı
Authorization: Bearerbaşlığına koyun; istemciniz bunu kuramıyorsaX-Api-Keybaşlığını kullanın. - Anahtarı ürettiğiniz adreste
whoamiucunu çağırın. Anahtarın kimliğini, izinlerini ve müşteri adresinde arkasındaki hesabı döndürür. - Buradaki bir
403anahtarın gerçek ama diğer adrese ait olduğu anlamına gelir. Anahtarı değil adresi kontrol edin.
Referans
/api/v1/admin adresine erişir. Personel üretir, izinle sınırlanır, tek bir müşteriye bağlı değildir.
/api/v1/client adresine erişir. Onu oluşturan hesaba bağlıdır; yaptığı her sorgu o hesaba göre süzülür.
Retler bilerek birbirinden ayrıdır; böylece çalışmayan bir entegrasyon üç kontrolden hangisinin onu durdurduğunu size söyler.
Retry-After ne kadar bekleneceğini söyler.
Örnek
KEY=$(cat ~/.config/wisecp.key)
curl -H "Authorization: Bearer $KEY" \
'https://panel.example.com/api/v1/admin/whoami'
# {"data":{"id":7,"type":"admin","name":"Fatura senkronu","permissions":["Invoices/*","Clients/GetClients"]}}
$ch = curl_init('https://panel.example.com/api/v1/admin/whoami');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . getenv('WISECP_API_KEY')],
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);
$izinler = $body['data']['permissions'] ?? [];
Tuzaklar
Yalnızca özeti saklanır; onu sonradan gösteren bir ekran ve geri getirebilecek bir destek talebi yoktur. Kaybolursa kimlik bilgisini yenileyin ve onu kullanan her yeri güncelleyin. Yenilemeyi küçük bir kesinti gibi görüp planlayın.
Bütçe sabit bir dakikalık penceredir: kurulum aksini söylemedikçe yönetim anahtarı için 120, müşteri anahtarı için 60 istek. Bütçesini fazlasıyla aşarak zorlamayı sürdüren bir çağıran, reddedilmekle kalmaz, bir süre kilitlenir. X-RateLimit-Remaining değerini okuyun ve Retry-After kadar bekleyin.
Başarısız kimlik doğrulama adres başına sayılır; kısa bir pencerede yeterince başarısızlık geçici bir engel ve too_many_auth_failures yanıtı getirir. Yanlış anahtarın etrafındaki bir yeniden deneme döngüsü bunu sizden önce bulur; 401 aldığınızda yeniden denemek yerine açıkça hata verin.
İlgili Makaleler
Geri bildiriminiz için teşekkürler!
Yukarıda bulamadığınız her şey için destek ekibimiz her zaman yanınızda.