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 przyjęto założenie, że masz skonfigurowaną usługę Fleet Engine z projektu Google Cloud i kluczy interfejsu API. Więcej informacji znajdziesz na stronie Fleet Engine.

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

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

Włączanie Maps JavaScript API

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

Autoryzacja konfiguracji

Fleet Engine wymaga użycia tokenów sieciowych JSON (JWT) podpisanych przez odpowiednie konto usługi do wywołań metody interfejsu API pochodzących od low-Trust . Środowiska o niskim stopniu zaufania to m.in. smartfony i przeglądarki. Token JWT zaczyna się na serwerze, który jest w pełni zaufanym środowiskiem. Token JWT jest podpisany, zaszyfrowany i przekazywany do klienta w celu kolejnego serwera. do momentu ich wygaśnięcia lub utraty ważności.

Twój backend powinien uwierzytelniać się i autoryzować we Fleet Engine za pomocą standardowych 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 usuwa 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ń.

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 autoryzację w aplikacji internetowej, backend Serwer musi mieć możliwość obsługi tokenów sieciowych JSON. W ten sposób Fleet Engine rozpoznaje żądania pochodzące z aplikacji jako autoryzowane do dostępu dane zawarte w żądaniu. Instrukcje dotyczące implementacji JWT po stronie serwera znajdziesz tutaj: Wydaj tokeny sieciowe JSON w ramach Fleet Engine Essentials.

W szczególności pamiętaj o poniższych kwestiach w przypadku pakietu JavaScript Consumer SDK do śledzenia 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 tokenów autoryzacji. Dzieje się tak, gdy jest spełniony dowolny z tych warunków:

  • Brak prawidłowego tokena, na przykład wtedy, gdy pakiet SDK nie wywołał modułu pobierania wczytanie nowej strony lub gdy moduł pobierania nie zwrócił się z tokenem.

  • Token wygasł.

  • Token wygaśnie w ciągu minuty.

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

Tworzenie modułu pobierania tokenów autoryzacji

Utwórz moduł pobierania tokenów autoryzacji, korzystając z tych wskazówek:

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

    • Ciąg token.

    • Numer expiresInSeconds. Token wygaśnie w tym czasie po pobraniu. Moduł pobierania tokenów uwierzytelniania musi utracić ważność czas w sekundach, od momentu pobrania do biblioteki, jak widać w z przykładu.

  • 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 URL dotyczy backendu przykładowej aplikacji na GitHubie:

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

Przykład – tworzenie modułu pobierania tokenów uwierzytelniania

W przykładach poniżej pokazujemy, jak utworzyć moduł pobierania tokenów 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?