Dzięki pakietowi SDK Fleet Engine dla konsumentów (JavaScript) aplikacja użytkownika może wyświetlać na mapie internetowej lokalizację pojazdów i inne interesujące lokalizacje śledzone we Fleet Engine. Dzięki temu użytkownicy mogą śledzić postępy dostawy. W tym przewodniku zakładamy, że masz skonfigurowany Fleet Engine z powiązanym projektem Google Cloud i kluczami interfejsu API. Szczegółowe informacje znajdziesz w artykule Fleet Engine.
Aby skonfigurować pakiet SDK dla konsumentów na JavaScript, wykonaj te czynności:
Włączanie interfejsu Maps JavaScript API
Włącz Maps JavaScript API w projekcie w konsoli Google Cloud, którego używasz w przypadku instancji Fleet Engine. Więcej informacji znajdziesz w sekcji Włączanie interfejsów API w dokumentacji interfejsu Maps JavaScript API.
Autoryzacja konfiguracji
Fleet Engine wymaga użycia tokenów internetowych JSON (JWT) do wywoływania metod interfejsu API ze środowisk o niskim poziomie zaufania: smartfonów i przeglądarek.
Token JWT pochodzi z Twojego serwera, jest podpisany, zaszyfrowany i przekazywany do klienta na potrzeby kolejnych interakcji z serwerem, dopóki nie wygaśnie lub nie straci ważności.
Najważniejsze informacje
- Użyj domyślnego uwierzytelniania aplikacji, aby uwierzytelniać i autoryzować żądania do Fleet Engine.
- Użyj odpowiedniego konta usługi do podpisywania tokenów JWT. Zobacz role konta usługi Fleet Engine w artykule Podstawowe informacje o Fleet Engine.
delivery_consumer z projektu w chmurze Google Cloud, aby zwracać tylko informacje dotyczące użytkowników. W ten sposób Fleet Engine filtruje i usuwa wszystkie inne informacje w odpowiedziach. Na przykład podczas zadania niedostępności użytkownikowi nie są udostępniane żadne informacje o lokalizacji. Zobacz role konta usługi dla zaplanowanych zadań.
Jak działa autoryzacja?
Autoryzacja za pomocą danych Fleet Engine obejmuje implementację zarówno po stronie serwera, jak i po stronie klienta.
Autoryzacja po stronie serwera
Zanim skonfigurujesz uwierzytelnianie i autoryzację w aplikacji internetowej, serwer backendu musi mieć możliwość wydawania tokenów internetowych JSON aplikacji internetowej, aby umożliwić dostęp do Fleet Engine. Twoja aplikacja internetowa wysyła te tokeny JWT wraz z żądaniami, dzięki czemu Fleet Engine rozpoznaje żądania jako uwierzytelnione i autoryzowane do 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 Podstawowych informacjach o Fleet Engine.
W szczególności pamiętaj o tych kwestiach dotyczących pakietu SDK klienta JavaScript do śledzenia przesyłek:- Ogólne wytyczne dotyczące wydawania tokenów sieciowych JSON
- Wytyczne dotyczące JWT w zaplanowanych zadaniach
- Przykładowy token aplikacji użytkownika
Autoryzacja po stronie klienta
Gdy używasz pakietu Consumer SDK dla JavaScriptu, żąda on tokena z serwera za pomocą modułu pobierania tokena autoryzacji. Dzieje się tak, gdy:
Nie ma prawidłowego tokena, np. gdy pakiet SDK nie wywołał modułu pobierania po wczytaniu strony lub gdy moduł pobierania nie zwrócił tokena.
Token stracił ważność.
Token wygaśnie w ciągu minuty.
W przeciwnym razie pakiet SDK klienta JavaScript używa wcześniej wydanego, prawidłowego tokena i nie wywołuje funkcji pobierającej.
Tworzenie modułu pobierania tokenów autoryzacji
Utwórz moduł pobierania tokenów autoryzacji, korzystając z tych wskazówek:
Funkcja pobierająca 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. Funkcja pobierająca token uwierzytelniania musi przekazać do biblioteki czas wygaśnięcia w sekundach od momentu pobrania, jak pokazano w przykładzie.
Moduł 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/delivery_consumer/TRACKING_ID
Przykład – tworzenie modułu pobierania tokenów uwierzytelniania
Te 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,
};
}