Kimlik doğrulama
Kimlik doğrulama
Authorization başlığındaki gizli bir anahtar, kendi kayıtlarınıza ulaşmanın yoludur. Başka bir giriş yolu yoktur ve hiçbir istek oturum çerezi ile doğrulanmaz. Kategori uç noktaları bunun istisnasıdır: kimsenin verisini değil, istediğimiz alanları anlatırlar ve anahtar olmadan yanıt verirler.
Anahtarlar
Bir anahtar yalnızca oluşturulduğu anda bir kez gösterilir. Onu sunucuların okuyabileceği, tarayıcının okuyamayacağı bir yerde saklayın.
- pc_sk_live_…
- pc_sk_test_…
Test ile canlı ayrı kalır
Kip, parametre olarak geçilmek yerine kimlik bilgisinin kendisine işlenmiştir; bu yüzden bir test anahtarı gerçek pasaportlarınızı ne okuyabilir ne de değiştirebilir. Yanlış yönlendirilmiş bir istek, yanlış kataloğa ulaşmak yerine başarısız olur. Test pasaportları, pasaportun kendisinde yapılan son değişiklikten 90 gün sonra silinir.
Anahtarı gönderme
HTTPS üzerinden Bearer kimlik doğrulaması. Başka bir yöntem kabul edilmez ve başlığı taşımayan bir istek, kayıtlarınızdan herhangi birine ulaşmadan reddedilir.
curl "https://passportcraft.com/api/v1/whoami" \
-H "Authorization: Bearer pc_sk_live_…"Tarayıcıdaki kimlik bilgileri bilinçli olarak desteklenmez. Anahtarın yeri sunucudur; ön uç kodundaki bir anahtar, yayımlanmış bir anahtardır.
Kapsamlar
Bir anahtar, oluşturulurken seçilen sabit bir kapsam kümesi taşır. Uç noktasının istediği kapsamı taşımayan bir istek reddedilir ve ret yanıtı eksik olan izni adıyla belirtir.
documents:read
documents:write
filings:write
keys:admin
passports:read
- get
/organizations/{organization}/capabilitiesBu anahtarın bu kuruluş için neler yapabileceğini tanımlar. - get
/organizations/{organization}/passportsPasaportları listeler. - get
/organizations/{organization}/publish-approvals/{id}Bir yayımlama onayını getir. - get
/organizations/{organization}/passports/{id}Tek bir pasaportu getirir. - post
/organizations/{organization}/passports/{id}/validateBir pasaportu, kaydetmeden kategori şemasına göre denetler. - get
/organizations/{organization}/passports/{id}/linksHerkese açık URL’leri ve GS1 Digital Link adreslerini alın. gs1_digital_links tüm varyantları variant_id, size ve colour ile içerir. Ana GTIN’in URI’si varyant bilgileriyle bir kez görünür; seri numaralı ana URI ayrı kalır. - get
/organizations/{organization}/passports/{id}/affichageFransız çevresel etiketleme durumunu okur. - get
/organizations/{organization}/passports/{id}/variantsBeden ve renk varyantlarını listeleyin. - get
/organizations/{organization}/passports/{id}/variants/reviewYayımlamadan önce bir kişinin gözden geçirdiği beden ve renkleri, parmak izleriyle birlikte okur. - get
/organizations/{organization}/importsİçe aktarma işlerini listeler. - get
/organizations/{organization}/imports/{id}Tek bir içe aktarma işini ve ilerlemesini getirir.
passports:write
- post
/organizations/{organization}/passportsBir pasaport oluşturur. - patch
/organizations/{organization}/passports/{id}Bir pasaporta JSON Merge Patch uygular. - post
/organizations/{organization}/passports/{id}/publishBir pasaportu yayımlar. - post
/organizations/{organization}/passports/{id}/unpublishBir pasaportun yayımını geri alır. - post
/organizations/{organization}/passports/{id}/trashBir pasaportu çöp kutusuna taşır. - post
/organizations/{organization}/passports/{id}/restoreBir pasaportu çöp kutusundan geri yükler. - post
/organizations/{organization}/passports/{id}/variantsBeden ve renk varyantları oluşturun. - delete
/organizations/{organization}/passports/{id}/variants/{variantId}Tek bir varyantı silin. Bağlayıcı kimlik bilgileriyle varyant silinemez. - post
/organizations/{organization}/passports/{id}/variants/removeVaryantları GTIN ile kaldırın. - post
/organizations/{organization}/importsEşzamansız toplu içe aktarma başlatır.
units:read
units:write
Kapsam gerekmez
Geçerli bir kimlik bilgisi yeterlidir. Bu uç noktalar tek bir kuruluşa ait hiçbir şey döndürmez.
Kimlik bilgisi gerekmez
Anahtar olmadan okunabilir. Bu uç noktalar ürünün kendisini anlatır — hangi kategoriler var ve her biri hangi alanları ister — bu yüzden yanıt her okuyucu için aynıdır. Anahtar göndermek yine kabul edilir; iptal edilmiş veya süresi dolmuş bir anahtar ise yine reddedilir. Anahtar olmadan, istemci adresi başına dakikada 60 istek olan anonim sayaca tabi olursunuz.
Birden çok kuruluş için tek anahtar
Bir anahtar tek bir kuruluşa aittir ve yalnızca yetkisinin bulunduğu başka bir kuruluş için işlem yapabilir. Müşterileri yöneten bir kuruluş, anahtarlarına her müşteri için ayrı ayrı seçilen izinlerle erişim verebilir. Her istek, yolunda tek bir kuruluşu adlandırır ve yalnızca o kuruluş üzerinde işlem yapar.
Bir anahtara müşteri erişimi verme
Yolda müşterinin kimliğini, gövdede ise anahtarın key_id değerini ve verilecek kapsamları belirterek POST /organizations/{organization}/grants çağrısını yapın. Çağrıyı yapan anahtarın kendi kuruluşunda keys:admin kapsamına sahip olması gerekir. Bir müşteriye yalnızca anahtarın kendi kuruluşunda zaten sahip olduğu kapsamlar verilebilir; filings:write için ayrıca müşterinin yazılı yetkisinin önce onaylanmış olması gerekir.
curl "https://passportcraft.com/api/v1/organizations/{client}/grants" \
-X POST \
-H "Authorization: Bearer $PASSPORTCRAFT_API_KEY" \
-H "Content-Type: application/json" \
-d '{"key_id": "K3n9Qw2P", "scopes": ["passports:read", "passports:write"]}'Erişim sona erdiğinde
DELETE /organizations/{organization}/grants/{keyId} tek bir yetkiyi sona erdirir; anahtar, yetkisinin bulunduğu her diğer kuruluşta çalışmaya devam eder. Bir müşteri, bir anahtarın erişimini kendi Ayarlar bölümünden de kaldırabilir. Bir müşteri ile kuruluşunuz arasındaki iş birliğinin sona ermesi, o müşteri üzerindeki tüm yetkileri bir kerede sona erdirir. Bundan sonra, müşteri için yapılan her istek 404 organization_not_found_or_not_granted yanıtını alır; bu, var olmayan bir kuruluş için verilen yanıtla aynıdır. İkisini birbirinden ayırt etmek için GET /organizations çağrısını yapın: erişimini kaybettiğiniz bir kuruluş artık listede yer almaz.
GET /organizations içindeki her kayıt, kuruluşun adını taşıyan display_name alanını ve link_status alanını içerir. link_status değeri, kuruluşunuzun yönettiği bir müşteri için "accepted", kendi kuruluşunuz için ise null olur.
Müşterileri yöneten bir kuruluş için canlı anahtarlar
Müşterileri yöneten bir kuruluş, kendi planı veya müşterilerinden en az birinin planı ücretli bir Pro ya da Scale planıysa canlı anahtar oluşturabilir. Deneme aşamasındaki veya ödemesi gecikmiş bir plan sayılmaz. Her istek yine de yolda adlandırılan kuruluşun planına göre denetlenir.
Örnek: bir zamanlayıcı, on müşteri
Her gece çalışan bir iş, anahtarının işlem yapabileceği kuruluşları listelemek için GET /organizations çağrısını yapar, ardından her müşteriyi ayrı ayrı senkronize eder. Ayrılan bir müşteri listeden düşer; böylece iş, her gece bir 404 kaydetmek yerine o müşteriyi çağırmayı bırakır.
const base = 'https://passportcraft.com/api/v1'
const headers = { 'Authorization': 'Bearer ' + process.env.PASSPORTCRAFT_API_KEY }
const { data } = await (await fetch(base + '/organizations', { headers })).json()
const clients = data.filter((connection) => connection.link_status === 'accepted')
for (const client of clients) {
// One organization per request, always named in the path.
await syncCatalogue(client.organization_id, client.display_name)
}