Zanim zaczniesz korzystać z biblioteki JavaScript do śledzenia floty, zapoznaj się z Fleet Engine i skonfiguruj tę usługę. Więcej informacji znajdziesz w artykule Fleet Engine.
Z tego dokumentu dowiesz się, jak włączyć autoryzację między aplikacją na stronie internetowej a Fleet Engine. Gdy skonfigurujesz żądania wysyłane do Fleet Engine z prawidłowymi tokenami autoryzacji, możesz zacząć śledzić pojazd na mapie.
Autoryzacja konfiguracji
Fleet Engine wymaga używania tokenów sieciowych JSON (JWT) w przypadku wywołań metod interfejsu API z środowisk o niskim poziomie zaufania: smartfonów i przeglądarek.
Token JWT pochodzi z Twojego serwera, jest podpisany i zaszyfrowany, a następnie przekazywany do klienta w celu dalszych interakcji z serwerem, dopóki nie wygaśnie lub nie będzie już ważny.
Najważniejsze informacje
- Użyj domyślnego uwierzytelniania aplikacji, aby uwierzytelniać i autoryzować dostęp do Fleet Engine.
- Używaj odpowiedniego konta usługi do podpisywania tokenów JWT. Więcej informacji o rolach konta usługi Fleet Engine znajdziesz w artykule Podstawowe informacje o Fleet Engine.
Jak działa autoryzacja?
Autoryzacja za pomocą danych Fleet Engine obejmuje implementację po stronie serwera i po stronie klienta.
Autoryzacja po stronie serwera
Zanim skonfigurujesz uwierzytelnianie i autoryzację w aplikacji do śledzenia floty, serwer backendu musi mieć możliwość wydawania tokenów sieciowych JSON aplikacji do śledzenia floty w celu uzyskania dostępu do Fleet Engine. Aplikacja do śledzenia floty wysyła te tokeny JWT wraz z żądaniami, dzięki czemu Fleet Engine rozpoznaje je jako uwierzytelnione i uprawnione do uzyskiwania dostępu do danych w żądaniu. Instrukcje dotyczące implementacji tokena JWT po stronie serwera znajdziesz w sekcji Wystawianie tokenów sieciowych JSON w podstawowych informacjach o Fleet Engine.
Aby wygenerować tokeny z serwera podczas wdrażania śledzenia floty, zapoznaj się z tymi informacjami:- Ogólne wytyczne dotyczące wydawania tokenów sieciowych JSON, w tym sekcje dotyczące przejazdów na żądanie i zaplanowanych zadań.
- Przejazdy na żądanie: przykładowy token operacji serwera backendu
- Zaplanowane zadania: przykładowy token do śledzenia wszystkich zadań i pojazdów we flocie
Autoryzacja po stronie klienta
Gdy używasz biblioteki śledzenia floty w JavaScript, wysyła ona do serwera żądanie tokena za pomocą funkcji pobierania tokena autoryzacji. Dzieje się tak, gdy spełniony jest którykolwiek z tych warunków:
- Nie ma prawidłowego tokenu, np. gdy pakiet SDK nie wywołał pobierania przy świeżym wczytaniu strony lub gdy pobieranie nie zwróciło tokenu. 
- Token wygasł. 
- Token wygaśnie za mniej niż minutę. 
W przeciwnym razie biblioteka śledzenia floty w JavaScript używa wcześniej wydanego, prawidłowego tokena i nie wywołuje funkcji pobierania.
Tworzenie funkcji pobierania tokena autoryzacji
Utwórz funkcję pobierania tokena autoryzacyjnego, korzystając z tych wskazówek:
- Pobierający musi zwrócić strukturę danych z 2 polami, opakowaną w - Promisew ten sposób:- Ciąg znaków - token.
- Liczba - expiresInSeconds. Token wygaśnie po upływie tego czasu od momentu pobrania. Funkcja pobierania tokena uwierzytelniania musi przekazywać do biblioteki czas wygaśnięcia w sekundach od momentu pobrania, jak pokazano w przykładzie.
 
- Pobierający powinien wywołać adres URL na Twoim serwerze, aby pobrać token. Ten adres URL – - SERVER_TOKEN_URL– zależy od implementacji backendu. Poniższy przykładowy adres URL dotyczy backendu przykładowej aplikacji na GitHubie:- https://SERVER_URL/token/fleet_reader
 
Przykład – tworzenie funkcji pobierania tokena autoryzacji
Te przykłady pokazują, jak utworzyć pobieranie 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,
  };
}