İzin oluşturun
POST /v1/permissions · izin apis:write
Bir API'ye izin (OAuth kapsamı) ekler; isteğe bağlı olarak onay ekranında gösterilen metinleri de ekleyebilirsiniz. Idempotency-Key desteklenir.
İstek
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
api_id |
string | evet | API (api_…). |
value |
string | evet | Kapsam değeri, resource:action (^[a-z0-9_.-]{1,64}:[a-z0-9_.*-]{1,64}$). API içinde benzersiz olmalı ve sonradan değiştirilemez. idp_ öneki ayrılmıştır. |
display_name |
string | null | hayır | Onay ekranında kapsam değeri yerine gösterilen kısa ad. En fazla 128 karakter. |
description |
string | null | hayır | Onay ekranında adın altında gösterilen ayrıntı satırı. En fazla 1024 karakter. |
consent_text_i18n |
object | null | hayır | Dil etiketi → onay ekranı metni, örneğin {"en": "Read your orders"}. En fazla 30 dil, her metin 1-1024 karakter, toplam 16 KiB. |
sensitivity |
string | hayır | normal (varsayılan) veya sensitive. |
Onay ekranı metinleri
Barındırılan onay ekranı, istenen her kapsamı şöyle gösterir: sayfa dili için consent_text_i18n girdisi (tam etiket, yoksa birincil alt etiketi), yoksa display_name, yoksa kapsam value değeri; description ayrıntı satırı olarak gösterilir. Üçü de düz metindir. Denetim karakterleri (satır sonları ve sekmeler dahil), satır ve paragraf ayırıcıları ile çift yönlü gömme, geçersiz kılma ve izole etme karakterleri (U+202A-U+202E, U+2066-U+2069) 422 ile reddedilir. Baştaki ve sondaki boşluklar kırpılır; kırpıldıktan sonra boş kalan metin null olarak saklanır. HTML yorumlanmaz: onay ekranı bunu kaçış karakterleriyle gösterir.
Yanıt
201 Created
{
"id": "perm_01h455vb4pex5vsknk084sn02s",
"api_id": "api_01h455vb4pex5vsknk084sn02q",
"value": "read:orders",
"display_name": "Read orders",
"description": "See your past orders and their status",
"consent_text_i18n": {
"en": "Read your orders",
"tr": "Siparişlerinizi okuyun"
},
"sensitivity": "normal"
}
Hatalar
| HTTP | code | Ne zaman |
|---|---|---|
| 400 | unknown_field |
Gövde bilinmeyen bir alan içeriyor. |
| 403 | insufficient_permissions |
Kimlik bilgisinde apis:write yok. |
| 403 | quota_exceeded |
API'nin zaten 1.000 izni var. |
| 404 | not_found |
Bu ortamda böyle bir API yok. |
| 409 | conflict |
Değer bu API'de zaten var ya da API sistem API'si. |
| 422 | validation_failed |
Bir alan eksik ya da geçersiz, ya da bir metin düz metin değil (errors[].pointer alanı belirtir, örneğin /consent_text_i18n). |
Örnek
curl -X POST https://api.eu.keenauth.com/v1/permissions \
-H "Authorization: Bearer $KEENAUTH_SECRET_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: 6f1d2c1e-perm-create" \
-d '{"api_id":"api_01h455vb4pex5vsknk084sn02q","value":"read:orders","display_name":"Read orders","consent_text_i18n":{"en":"Read your orders"}}'
CLI ile dil eşlemesini --data ile iletin:
echo '{"consent_text_i18n":{"en":"Read your orders"}}' | keenauth permissions create \
--api-id api_01h455vb4pex5vsknk084sn02q --value read:orders --display-name "Read orders" --data -