Konfigurowanie pakietu JavaScript Consumer SDK

Dzięki pakietowi JavaScript Consumer SDK Twoja aplikacja dla konsumentów może wyświetlać na mapie internetowej lokalizację pojazdów i innych miejsc zainteresowania śledzonych w Fleet Engine. Dzięki temu klienci mogą śledzić postępy dostawy. W tym przewodniku zakładamy, że masz już skonfigurowany mechanizm floty z powiązanym projektem Google Cloud i kluczami interfejsu API. Więcej informacji znajdziesz w Fleet Engine.

Aby skonfigurować JavaScript Consumer SDK, wykonaj te czynności:

  1. Włącz interfejs Maps JavaScript API.
  2. Skonfiguruj autoryzację.

Włączanie interfejsu Maps JavaScript API

Włącz interfejs Maps JavaScript API w projekcie konsoli Google Cloud, którego używasz do instancji Fleet Engine. Więcej informacji znajdziesz w sekcji Włączanie interfejsów API w dokumentacji interfejsu Maps JavaScript API.

Autoryzacja konfiguracji

W przypadku wywołań metod interfejsu API z środowisk o niskim poziomie zaufania usługa Fleet Engine wymaga korzystania z tokenów sieciowych JSON (JWT) podpisanych odpowiednim kontem usługi. Środowiska o niskim poziomie zaufania to smartfony i przeglądarki. Token JWT pochodzi z serwera, który jest pełnowymiarowym zaufanym środowiskiem. JWT jest podpisywany, szyfrowany i przekazywany do klienta na potrzeby kolejnych interakcji z serwerem, dopóki nie wygaśnie lub nie straci ważności.

Twój backend powinien uwierzytelniać i autoryzować się w Fleet Engine za pomocą standardowych mechanizmów domyślnych danych logowania aplikacji. Upewnij się, że używasz tokenów JWT podpisanych przez odpowiednie konto usługi. Listę ról kont usług znajdziesz w artykule Podstawy Fleet Engine, w sekcji Role kont usług Fleet Engine.

Aplikacja dla konsumentów powinna uwierzytelniać użytkowników za pomocą roli delivery_consumer z Twojego projektu Google Cloud, aby zwracać tylko informacje o konsumentach. W ten sposób Fleet Engine filtruje i wycina wszystkie inne informacje w odpowiedziach. Na przykład podczas zadania dotyczącego niedostępności użytkownik nie otrzymuje żadnych informacji o lokalizacji. Zapoznaj się z rolami konta usługi dotyczącymi zaplanowanych zadań.

Z kolei backend powinien uwierzytelniać i autoryzować się w ramach Fleet Engine, korzystając ze standardowych mechanizmów danych logowania aplikacji.

Jak działa autoryzacja?

Autoryzacja za pomocą danych Fleet Engine wymaga implementacji po stronie serwera i po stronie klienta.

Autoryzacja po stronie serwera

Zanim skonfigurujesz uwierzytelnianie i autoryzację w aplikacji internetowej, serwer backendu musi mieć możliwość wydawania tokenów sieciowych JSON aplikacji internetowej na potrzeby dostępu do Fleet Engine. Twoja aplikacja internetowa wysyła te tokeny JWT z żądaniami, aby usługa Fleet Engine uznała je za uwierzytelnione i upoważnione do dostępu do danych w żądaniu. Instrukcje dotyczące implementacji JWT po stronie serwera znajdziesz w sekcji Najważniejsze informacje o Fleet Engine Wydawanie tokenów sieciowych JSON.

W szczególności w przypadku pakietu SDK JavaScript Consumer do śledzenia przesyłek należy pamiętać o tych kwestiach:

Autoryzacja po stronie klienta

Gdy korzystasz z pakietu JavaScript Consumer SDK, wysyła on żądanie tokena do serwera za pomocą modułu pobierania tokena autoryzacji. Dzieje się tak, gdy jest spełniony co najmniej jeden z tych warunków:

  • Brak prawidłowego tokenu, np. gdy pakiet SDK nie wywołał funkcji pobierania podczas wczytywania nowej strony lub gdy funkcja pobierania nie zwróciła tokenu.

  • Token wygasł.

  • Token wygaśnie za minutę.

W przeciwnym razie pakiet JavaScript Consumer SDK używa wcześniej wydanego prawidłowego tokena i nie wywołuje funkcji pobierania.

Tworzenie funkcji pobierania tokena autoryzacji

Aby utworzyć funkcję pobierania tokenu autoryzacyjnego, postępuj zgodnie z tymi wskazówkami:

  • Pobieranie musi zwracać strukturę danych z 2 polami, zapakowaną w Promise w ten sposób:

    • Ciąg tekstowy token.

    • Liczba expiresInSeconds. Token wygasa po tym czasie po pobraniu. Pobranie tokena uwierzytelniania musi nastąpić w okresie ważności (w sekundach) od pobrania do biblioteki, jak pokazano w tym przykładzie.

  • Aby pobrać token, pobieracz powinien wywołać adres URL na Twoim serwerze. Ten adres URL (SERVER_TOKEN_URL) zależy od implementacji backendu. Ten przykładowy adres URL dotyczy back-endu przykładowej aplikacji na GitHubie:

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

Przykład – tworzenie funkcji pobierania tokenu uwierzytelniania

Te przykłady pokazują, jak utworzyć funkcję pobierania tokena autoryzacji:

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,
  };
}

Co dalej?