Pakiet JavaScript Consumer SDK umożliwia wyświetlanie w aplikacji konsumenckiej lokalizacji pojazdów i innych lokalizacji, które są śledzone w Fleet Engine, na mapie internetowej. Dzięki temu użytkownicy mogą śledzić postępy w dostawie przesyłek. W tym przewodniku zakładamy, że masz już skonfigurowany Fleet Engine z powiązanym projektem Google Cloud i kluczami interfejsu API. Więcej informacji znajdziesz w artykule Fleet Engine.
Aby skonfigurować pakiet SDK klienta JavaScript, wykonaj te czynności:
Włączanie interfejsu Maps JavaScript API
Włącz interfejs Maps JavaScript API w projekcie konsoli Google Cloud, którego używasz w przypadku instancji Fleet Engine. Więcej informacji znajdziesz w dokumentacji interfejsu Maps JavaScript API w sekcji Włączanie interfejsów API.
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.
delivery_consumer
z Twojego projektu Google Cloud, aby zwracać tylko informacje dotyczące konsumentów. W ten sposób Fleet Engine filtruje i redaguje wszystkie inne informacje w odpowiedziach. Na przykład podczas zadania niedostępności żadne informacje o lokalizacji nie są udostępniane użytkownikowi. Informacje o rolach konta usługi w przypadku zaplanowanych zadań znajdziesz w tym artykule.
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 internetowej, serwer backendu musi mieć możliwość wydawania tokenów sieciowych JSON do aplikacji internetowej w celu uzyskania dostępu do Fleet Engine. Aplikacja internetowa wysyła te tokeny JWT wraz z żądaniami, aby usługa Fleet Engine rozpoznawała je jako uwierzytelnione i upoważnione do uzyskiwania dostępu do danych w żądaniu. Instrukcje dotyczące implementacji tokenów JWT po stronie serwera znajdziesz w sekcji Wystawianie tokenów sieciowych JSON w Podstawach Fleet Engine.
W przypadku pakietu SDK JavaScript Consumer do śledzenia przesyłek pamiętaj o tych kwestiach:- Ogólne wskazówki dotyczące wydawania tokenów sieciowych JSON
- Wskazówki dotyczące JWT w przypadku zaplanowanych zadań
- Przykładowy token aplikacji konsumenckiej
Autoryzacja po stronie klienta
Gdy używasz pakietu JavaScript Consumer SDK, wysyła on do serwera żądanie tokena za pomocą narzędzia do pobierania tokenów autoryzacji. Dzieje się tak, gdy spełniony jest którykolwiek z tych warunków:
Nie ma prawidłowego tokena, np. gdy pakiet SDK nie wywołał pobierania przy świeżym wczytaniu strony lub gdy pobieranie nie zwróciło tokena.
Token wygasł.
Token wygaśnie za mniej niż minutę.
W przeciwnym razie pakiet SDK JavaScript Consumer używa wcześniej wydanego, prawidłowego tokena i nie wywołuje funkcji pobierającej.
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
Promise
w 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/delivery_consumer/TRACKING_ID
Przykład – tworzenie funkcji pobierającej token uwierzytelniania
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,
};
}