JavaScript Tüketici SDK'sını ayarlama

JavaScript Tüketici SDK'sı sayesinde tüketici uygulamanız, Fleet Engine'da izlenen araçların ve diğer ilgilenilen konumların konumunu web tabanlı bir haritada gösterebilir. Bu sayede tüketici kullanıcılarınız, gönderimlerinin ilerleme durumunu görebilir. Bu kılavuzda, Fleet Engine'i ilişkilendirilmiş Google Cloud projesi ve API anahtarları. Ayrıntılar için Fleet Engine'e bakın.

JavaScript Tüketici SDK'sını aşağıdaki adımları uygulayarak kurarsınız:

  1. Haritalar JavaScript API'yi etkinleştirin.
  2. Yetkilendirme ayarlarını yapın.

Maps JavaScript API'yi etkinleştirme

Kullandığınız Google Cloud Console projesinde Maps JavaScript API'yi etkinleştirin bir örneğidir. Daha fazla bilgi için Maps JavaScript API dokümanlarında API'leri etkinleştirme bölümüne bakın.

Yetkilendirme kurulumu

Düşük güven düzeyine sahip ortamlardan gelen API yöntemi çağrıları için Fleet Engine, Uygun bir hizmet hesabı tarafından imzalanan JSON Web Jetonlarının (JWT) kullanımı. Akıllı telefonlar ve tarayıcılar, güven düzeyinin düşük olduğu ortamlara dahildir. JWT, tamamen güvenilir bir ortam olan sunucunuzda oluşturulur. JWT imzalanır, şifrelenir ve sonraki sunucu için istemciye iletilir geçerlilik süresi sona erene kadar veya geçerliliğini yitirene kadar etkileşimleri iptal eder.

Arka ucunuz aşağıdakileri kullanarak Fleet Engine'e karşı kimlik doğrulamalı ve yetkilendirme yapmalıdır: Application Default Credentials (Uygulama Varsayılan Kimlik Bilgileri) mekanizmalarını kullanın. Uygun bir hizmet hesabı tarafından imzalanmış JWT'leri kullandığınızdan emin olun. Örneğin, hizmet hesabı rollerinin listesi için Fleet Engine hizmet hesabı rollerine bakın Fleet Engine Basics (Filo Motoru Temel Bilgileri) bölümüne göz atın.

Tüketici uygulamanız, yalnızca tüketiciye özgü bilgileri döndürmek için son kullanıcılarınızın kimliğini Google Cloud projenizdeki delivery_consumer rolüyle doğrulamalıdır. Bu sayede Fleet Engine, yanıtlardaki diğer tüm bilgileri filtreler ve çıkartır. Örneğin, müsait olmama görevi sırasında son kullanıcıyla hiçbir konum bilgisi paylaşılmaz. Planlanmış görevler için Hizmet hesabı rolleri başlıklı makaleyi inceleyin.

Buna karşılık, arka ucunuzun Fleet Engine'e karşı kimlik doğrulaması ve yetkilendirme yapması gerekir. standart Uygulama Varsayılan Kimlik Bilgilerini kullanarak mekanizmalar.

Yetkilendirme nasıl çalışır?

Fleet Engine verileriyle yetkilendirme, hem sunucu hem de istemci taraflı uygulamayı içerir.

Sunucu tarafı yetkilendirme

Web tabanlı uygulamanızda kimlik doğrulama ve yetkilendirmeyi ayarlamadan önce arka uç sunucunuzun, Fleet Engine'a erişmek için web tabanlı uygulamanıza JSON Web jetonları gönderebilmesi gerekir. Web tabanlı uygulamanız Bu JWT'leri istekleriyle birlikte gönderir. Böylece Fleet Engine, istekleri verilere erişme konusunda yetkilendirilmiş ve isteği gönderin. Sunucu tarafı JWT uygulamasıyla ilgili talimatlar için Sorun JSON Web sayfası Fleet Engine Essentials altındaki jetonlar.

JavaScript Tüketici SDK'sı için şunlara dikkat edin: gönderileri takip etme:

İstemci tarafı yetkilendirme

JavaScript Tüketici SDK'sını kullandığınızda bu SDK, yetkilendirme jetonu alıcısını kullanarak sunucudan jeton ister. Bu işlem aşağıdakilerden biri geçerli olduğunda yapılır:

  • Geçerli bir jeton yok (ör. SDK yeni bir sayfa yüklendiğinde getirme aracını çağırmadıysa veya getirme aracı bir jetonla dönmediyse).

  • Jetonun süresi doldu.

  • Jetonun süresi bir dakika içinde dolacak.

Aksi takdirde JavaScript tüketici SDK'sı daha önce verilen geçerli jetonu kullanır ve getirme aracını çağırmaz.

Yetkilendirme jetonu alıcısı oluşturma

Aşağıdaki yönergeleri kullanarak yetkilendirme jetonu alıcınızı oluşturun:

  • Alıcı, iki alanı olan bir veri yapısı döndürmelidir. Bu veri yapısı Promise şu şekildedir:

    • token dizesi.

    • expiresInSeconds numarası. Jetonun geçerlilik süresi, getirildikten sonra bu süre içinde sona erer. Kimlik doğrulama jetonu getirme aracı, örnekte gösterildiği gibi kitaplığa getirme zamanından itibaren süre sonunu saniye cinsinden iletmelidir.

  • Alıcının, jeton almak için sunucunuzdaki bir URL'yi çağırması gerekir. Bu URL (SERVER_TOKEN_URL), arka uç uygulamanıza bağlıdır. Aşağıdaki örnek URL, GitHub'daki örnek uygulama arka ucu içindir:

    • https://SERVER_URL/token/delivery_consumer/TRACKING_ID

Örnek: Kimlik doğrulama jetonu getirme aracısı oluşturma

Aşağıdaki örneklerde, yetkilendirme jetonu alıcısının nasıl oluşturulacağı gösterilmektedir:

JavaScript

async function authTokenFetcher(options) {
  // options is a record containing two keys called
  // serviceType and context. The developer should
  // generate the correct SERVER_TOKEN_URL and request
  // based on the values of these fields.
  const response = await fetch(SERVER_TOKEN_URL);
  if (!response.ok) {
    throw new Error(response.statusText);
  }
  const data = await response.json();
  return {
    token: data.Token,
    expiresInSeconds: data.ExpiresInSeconds
  };
}

TypeScript

function authTokenFetcher(options: {
  serviceType: google.maps.journeySharing.FleetEngineServiceType,
  context: google.maps.journeySharing.AuthTokenContext,
}): Promise<google.maps.journeySharing.AuthToken> {
  // The developer should generate the correct
  // SERVER_TOKEN_URL based on options.
  const response = await fetch(SERVER_TOKEN_URL);
  if (!response.ok) {
    throw new Error(response.statusText);
  }
  const data = await response.json();
  return {
    token: data.token,
    expiresInSeconds: data.ExpiresInSeconds,
  };
}

Sırada ne var?