Konfigurowanie pakietu JavaScript Consumer SDK

Za pomocą pakietu JavaScript Consumer SDK aplikacja może pokazywać lokalizację pojazdów i innych interesujących lokalizacji śledzonych przez Fleet Engine mapy. Dzięki temu użytkownicy będą mogli śledzić postęp wysyłki. 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 na stronie 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. Marka używaj tokenów JWT, które zostały podpisane przez odpowiednie konto usługi. Dla lista ról konta usługi, zobacz role konta usługi Fleet Engine w artykule Podstawy Fleet Engine.

Aplikacja dla klientów indywidualnych powinna uwierzytelniać użytkowników za pomocą delivery_consumer rola z projektu Google Cloud, która zostanie zwrócona tylko konsumentom. W ten sposób Fleet Engine filtruje i wycina wszystkie inne informacje w odpowiedziach. Na przykład podczas zadania dotyczącego niedostępności Dane o lokalizacji nie są udostępniane użytkownikowi. Zobacz konto usługi ról dla 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 obejmuje zarówno po stronie serwera, jak i klienta implementacji.

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 uzyskiwania 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 Podstawy silnika floty w artykule Wydawanie tokenów sieciowych JSON.

W szczególności pamiętaj o poniższych kwestiach dotyczących pakietu JavaScript Consumer SDK dla śledzenie przesyłek:

Autoryzacja po stronie klienta

Gdy używasz 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 tokena, na przykład jeśli pakiet SDK nie wywołał modułu pobierania na wczytanie nowej strony lub gdy moduł pobierania nie zwrócił się z tokenem.

  • Token wygasł.

  • Token wygaśnie za minutę.

W przeciwnym razie JavaScript Consumer SDK używa wcześniej wydanego, prawidłowego tokena i nie możesz wywołać moduł pobierania.

Tworzenie funkcji pobierania tokena autoryzacji

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

  • Moduł pobierania musi zwrócić strukturę danych z 2 polami opakowaną w Promise w następujący sposób:

    • Ciąg token.

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

  • Moduł pobierania powinien wywołać adres URL na Twoim serwerze, aby pobrać token. 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?