Dzięki pakietowi JavaScript Consumer SDK Twoja aplikacja użytkownika może wyświetlać lokalizację pojazdów i inne lokalizacje zainteresowania śledzone w Fleet Engine na mapie internetowej. Dzięki temu użytkownicy mogą śledzić postępy w dostawie. W tym przewodniku zakładamy, że masz już skonfigurowany Fleet Engine z powiązanym projektem w chmurze Google Cloud i kluczami interfejsu API. Więcej informacji znajdziesz w artykule Fleet Engine.
Aby skonfigurować pakiet JavaScript Consumer SDK, wykonaj te czynności:
Włączanie Maps JavaScript API
Włącz Maps JavaScript API w projekcie konsoli Google Cloud, którego używasz w instancji Fleet Engine. Więcej informacji znajdziesz w artykule Włączanie interfejsów API w dokumentacji Maps JavaScript API.
Konfigurowanie autoryzacji
Fleet Engine wymaga używania tokenów sieciowych JSON (JWT) w przypadku wywołań metod interfejsu API z środowisk o niskim poziomie zaufania , czyli ze smartfonów i przeglądarek.
Token JWT jest generowany na Twoim serwerze, podpisywany, szyfrowany i przekazywany do klienta na potrzeby kolejnych interakcji z serwerem, dopóki nie wygaśnie lub nie stanie się nieważny.
Najważniejsze informacje
- Aby uwierzytelnić się i uzyskać autoryzację w Fleet Engine, użyj domyślnego uwierzytelniania aplikacji.
- Do podpisywania tokenów JWT użyj odpowiedniego konta usługi. Więcej informacji znajdziesz w sekcji Role konta usługi Fleet Engine w artykule Podstawy Fleet Engine.
delivery_consumer z projektu Google Cloud, aby zwracać tylko informacje dotyczące konsumentów. W ten sposób Fleet Engine filtruje i usuwa wszystkie inne informacje w odpowiedziach. Na przykład podczas zadania niedostępności żadne informacje o lokalizacji nie są udostępniane użytkownikowi. Więcej informacji znajdziesz w artykule Role konta usługi
w przypadku zadań zaplanowanych.
Jak działa autoryzacja?
Autoryzacja dostępu do danych Fleet Engine wymaga implementacji zarówno po stronie serwera, jak i po stronie klienta.
Autoryzacja po stronie serwera
Zanim skonfigurujesz uwierzytelnianie i autoryzację w aplikacji internetowej, serwer backendowy musi mieć możliwość wydawania tokenów sieciowych JSON do aplikacji internetowej, aby uzyskać dostęp do Fleet Engine. Aplikacja internetowa wysyła te tokeny JWT wraz z żądaniami, dzięki czemu Fleet Engine rozpoznaje żądania jako uwierzytelnione i autoryzowane do uzyskiwania dostępu do danych w żądaniu. Instrukcje dotyczące implementacji tokenów JWT po stronie serwera znajdziesz w sekcji Wydawanie tokenów sieciowych JSON w artykule Podstawy Fleet Engine.
W przypadku pakietu JavaScript Consumer SDK do śledzenia przesyłek pamiętaj o tych kwestiach:- Ogólne wytyczne dotyczące wydawania tokenów sieciowych JSON
- Wytyczne dotyczące tokenów JWT w przypadku zadań zaplanowanych
- Przykładowy token dla aplikacji użytkownika
Autoryzacja po stronie klienta
Gdy używasz pakietu JavaScript Consumer SDK, wysyła on żądanie tokena do serwera za pomocą narzędzia do pobierania tokena autoryzacji. Dzieje się tak, gdy spełniony jest któryś z tych warunków:
Nie ma prawidłowego tokena, np. gdy pakiet SDK nie wywołał modułu pobierania przy świeżym wczytaniu strony lub gdy moduł pobierania nie zwrócił tokena.
Token stracił ważność.
Token wygaśnie za mniej niż minutę.
W przeciwnym razie pakiet JavaScript Consumer SDK używa wcześniej wydanego, prawidłowego tokena i nie wywołuje modułu pobierania.
Tworzenie narzędzia do pobierania tokena autoryzacji
Utwórz moduł pobierania tokena autoryzacji, korzystając z tych wytycznych:
Moduł pobierania musi zwracać strukturę danych z 2 polami, opakowaną w
Promisew ten sposób:Ciąg znaków
token.Liczba
expiresInSeconds. Token wygasa po upływie tego czasu od pobrania. Narzędzie do pobierania tokena uwierzytelniania musi przekazywać czas wygaśnięcia w sekundach od momentu pobrania do biblioteki, jak pokazano w przykładzie.
Moduł pobierania powinien wywoływać adres URL na Twoim serwerze , aby pobrać token. Ten adres URL –
SERVER_TOKEN_URL– zależy od implementacji backendu. Ten przykładowy adres URL jest przeznaczony dla backendu przykładowej aplikacji na GitHubie:https://SERVER_URL/token/delivery_consumer/TRACKING_ID
Przykład – tworzenie narzędzia do pobierania tokena uwierzytelniania
Poniższe przykłady pokazują, jak utworzyć moduł 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,
};
}