Zanim użyjesz biblioteki śledzenia floty JavaScript, sprawdź, czy znasz i skonfigurowałem Fleet Engine. Więcej informacji: Fleet Engine.
Z tego dokumentu dowiesz się, jak włączyć autoryzację aplikacji do stron internetowych i Fleet Engine. Gdy Twoje żądania do Fleet Engine została skonfigurowana przy użyciu prawidłowych tokenów autoryzacji, możesz śledzić pojazd na mapie.
Autoryzacja konfiguracji
W przypadku wywołań metod interfejsu API ze środowisk o niskim poziomie zaufania Fleet Engine wymaga: użycie tokenów sieciowych JSON (JWT) podpisanych przez odpowiednie konto usługi. Środowiska o niskim stopniu zaufania to m.in. smartfony i przeglądarki. Token JWT pochodzi z serwera, który jest pełnowymiarowym 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. Dla lista ról konta usługi, zobacz role konta usługi Fleet Engine w artykule Podstawy floty.
W przeciwieństwie do tego Twój backend powinien się uwierzytelniać i autoryzować za pomocą Fleet Engine. przy użyciu standardowych domyślnych danych logowania aplikacji. i zbierania danych.
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 do śledzenia floty, Twój 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.
Aby wygenerować tokeny z serwera podczas wdrażania śledzenia floty, zapoznaj się z :- Ogólne wskazówki dotyczące wystawiania tokenów sieciowych JSON, w tym sekcji dotyczących podróży na żądanie i zaplanowanych zadań.
- Podróże na żądanie: przykładowy token działania 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 JavaScriptu, żąda ona tokena od 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 biblioteka śledzenia floty JavaScript używa wcześniej wydanego prawidłowego tokena i nie wywołuje funkcji 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/fleet_reader
Przykład – tworzenie modułu do pobierania tokenów autoryzacji
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,
};
}