İçeriğe geç

Kimlik ve istemci

API’yi çağıran her sistem bir istemcidir. Her istemcinin bir kimliği (client_id) ve gizli anahtarı (client_secret) vardır. Trimango hangi kanal ortağının çağırdığını, hangi villaları göreceğini ve rezervasyonun kimden geldiğini bu kimlikten bilir; alan adınıza ya da IP adresinize bakmaz.

İstemciyi Trimango ekibi açar ve size güvenli bir kanaldan iletir; kendi kendinize istemci oluşturamazsınız.

  • Gizli anahtar yalnız bir kez gösterilir. Trimango anahtarı açık hâliyle saklamaz ve sonradan gösteremez. Kaybederseniz yeni istemci istemeniz gerekir.
  • Test ve canlı ayrı istemcidir. Test istemcisi yalnız test ortamının taban adresinde, canlı istemci yalnız canlı adreste çalışır. Webhook adresi, imza anahtarı ve istek sınırı da istemci başınadır.
  • Birden çok sisteminiz ya da ortamınız varsa (ör. ayrı bir hazırlık ortamı) her biri için ayrı istemci isteyin. Aynı kimliği birden çok ortamda paylaşmayın.

Her isteğe HTTP Basic kimlik eklenir:

Authorization: Basic <base64(client_id:client_secret)>
Node
const auth =
'Basic ' + Buffer.from(`${clientId}:${clientSecret}`).toString('base64')
curl
curl -u "$TRIMANGO_CLIENT_ID:$TRIMANGO_CLIENT_SECRET" "$TRIMANGO_BASE_URL/site"

Bütün istekler HTTPS üzerinden yapılır. Oturum, çerez ya da erişim belirteci (token) alıp yenileme adımı yoktur: her istek kimliğini kendisi taşır.

Rezervasyon detayını okumak gibi bazı uçlar bunun yanında rezervasyona özel bir erişim anahtarı da ister (X-Reservation-Token). Bu anahtar talep yanıtında gelir; kullanımı Rezervasyon rehberinde.

Sisteminiz birçok acentenin kullandığı bir yazılım olduğu için anahtar bütün acentelerin adına çalışır. Bu yüzden:

  • Anahtarı yalnız sunucuda, ortam değişkeninde ya da bir sır yöneticisinde (secret manager) tutun.
  • Tarayıcıya, mobil uygulamaya, acentelerin gördüğü ekranlara ve dışa açık yapılandırma dosyalarına koymayın.
  • Kaynak kodu deposuna eklemeyin; .env dosyalarını sürüm denetiminin dışında tutun.
  • Günlüklere (log) Authorization başlığını yazmayın. İstek günlüğü tutuyorsanız bu başlığı maskeleyin.
  • Anahtara erişebilen kişi sayısını en aza indirin.

API çağrılarını acentelerin tarayıcısından doğrudan yapmayın. Acentenin ekranı sizin sunucunuza gelir, sizin sunucunuz Trimango’yu çağırır.

  • Trimango ekibi bir istemciyi iptal ettiğinde istemci hemen reddedilir; sonraki her istek 401 alır.
  • Anahtarın sızdığından şüphelenirseniz vakit kaybetmeden size verilen iletişim kanalından Trimango ekibine bildirin. Eski istemci iptal edilir, size yenisi verilir.
  • Anahtarı belirli aralıklarla yenilemek isterseniz yine Trimango ekibiyle planlayın: yeni kimliği yayına aldıktan sonra eskisi iptal edilir.

Kimlik doğrulanamazsa yanıt 401 olur ve WWW-Authenticate: Basic başlığını taşır. Gövde hata biçimindedir. Olası nedenler:

Neden Ne yapmalı
Authorization başlığı yok ya da Basic ile başlamıyor Başlığı her isteğe ekleyin.
Base64 bozuk ya da : eksik client_id:client_secret metnini olduğu gibi kodlayın; satır sonu eklemeyin.
Kimlik ya da anahtar yanlış Ortam değişkenlerini kontrol edin; test kimliğini canlı adreste (ya da tersi) kullanmadığınızdan emin olun.
İstemci iptal edilmiş Trimango ekibinden yeni istemci isteyin.

401 aldığınızda isteği aynı kimlikle yeniden denemeyin; kimlik değişmeden sonuç da değişmez. Bunu bir alarm olarak ele alın.