Dzięki pakietowi JavaScript Consumer SDK Twoja aplikacja dla konsumentów może wyświetlać na mapie internetowej lokalizację pojazdów i innych miejsc zainteresowania śledzonych w Fleet Engine. Dzięki temu klienci mogą śledzić postępy kierowcy. W tym przewodniku zakładamy, że masz skonfigurowany mechanizm floty z powiązanym projektem Google Cloud i kluczami interfejsu API. Więcej informacji znajdziesz na stronie Fleet Engine.
Aby skonfigurować JavaScript Consumer SDK, wykonaj te czynności:
Włączanie interfejsu Maps JavaScript API
Włącz interfejs Maps JavaScript API w Google Cloud Console. Aby dowiedzieć się więcej, zapoznaj się z sekcją poświęconą włączaniu interfejsów API w dokumentacji Google Cloud. Spowoduje to włączenie pakietu Consumer SDK dla JavaScriptu.
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 zaczyna się na serwerze, który jest w pełni zaufanym środowiskiem. JWT jest podpisywany, szyfrowany i przekazywany do klienta na potrzeby kolejnych interakcji z serwerem, dopóki nie wygaśnie lub nie straci ważności.
Backend powinien uwierzytelniać i autoryzować się w Fleet Engine za pomocą standardowych mechanizmów domyślnych danych logowania aplikacji. Marka używaj tokenów JWT, które zostały podpisane przez odpowiednie konto usługi. Listę ról kont usług znajdziesz w artykule Podstawy Fleet Engine, w sekcji Role kont usług Fleet Engine.
Z kolei backend powinien uwierzytelniać i autoryzować się w ramach Fleet Engine, korzystając ze standardowych mechanizmów danych uwierzytelniających aplikacji.
Jak działa autoryzacja?
Autoryzacja za pomocą danych Fleet Engine wymaga implementacji po stronie serwera 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 aplikacji internetowej na potrzeby uzyskiwania dostępu do Fleet Engine. Twoja aplikacja internetowa wysyła te tokeny JWT ze swoimi żądaniami, aby usługa Fleet Engine rozpoznawała żądania jako uwierzytelnionych i autoryzowanych do uzyskiwania dostępu do danych w użytkownika. Instrukcje dotyczące implementacji JWT po stronie serwera znajdziesz w sekcji Najważniejsze informacje o Fleet Engine Wydawanie tokenów sieciowych JSON.
W szczególności pamiętaj o poniższych kwestiach dotyczących pakietu JavaScript Consumer SDK dla udostępnianie postępów w podróży:- Ogólne wskazówki dotyczące wydawania tokenów sieciowych JSON
- Wytyczne dotyczące tokenów JWT podróży na żądanie
- Przykład tokena operacji konsumenta
Autoryzacja po stronie klienta
Gdy używasz pakietu JavaScript Consumer SDK, wysyła on żądanie tokena do serwera za pomocą modułu pobierania tokenów autoryzacji. Dzieje się tak, gdy jest spełniony dowolny z tych warunków:
Brak prawidłowego tokenu, np. gdy pakiet SDK nie wywołał funkcji pobierania podczas wczytywania nowej strony lub gdy funkcja pobierania nie zwróciła tokenu.
Token wygasł.
Token wygaśnie w ciągu minuty.
W przeciwnym razie JavaScript Consumer SDK używa wcześniej wydanego, prawidłowego tokena i nie możesz wywołać moduł 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
.Liczba
expiresInSeconds
. Token wygasa po 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 URL (
SERVER_TOKEN_URL
) zależy od implementacji backendu. Ten przykładowy adres URL dotyczy back-endu przykładowej aplikacji na GitHubie:https://SERVER_URL/token/consumer/TRIPID
Przykład: tworzenie modułu pobierania tokenów uwierzytelniania
Te przykłady pokazują, jak utworzyć funkcję 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,
};
}