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ą zobaczyć, jak przebiega podróż. 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 Maps JavaScript API
Włącz interfejs Maps JavaScript API w Google Cloud Console. Więcej informacji znajdziesz w artykule o 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 z środowisk o niskim poziomie zaufania usługa Fleet Engine wymaga korzystania z tokenów sieciowych JSON (JWT) podpisanych odpowiednim kontem 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. Token JWT jest podpisany, zaszyfrowany i przekazywany do klienta na potrzeby kolejnych interakcji z serwerem, dopóki nie wygaśnie lub nie będzie już ważny.
Twój backend powinien uwierzytelniać się i autoryzować we Fleet Engine przy użyciu standardowych mechanizmów domyślnych danych uwierzytelniających aplikacji. Upewnij się, że używasz tokenów JWT podpisanych przez odpowiednie konto usługi. Listę ról konta usługi znajdziesz w sekcji Konto usługi Fleet Engine w artykule Podstawy 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 obejmuje implementację po stronie serwera i klienta.
Autoryzacja po stronie serwera
Zanim skonfigurujesz uwierzytelnianie i autoryzację w aplikacji internetowej, serwer backendu musi mieć możliwość wydawania tokenów sieciowych JSON aplikacji internetowej na potrzeby dostępu do Fleet Engine. Twoja aplikacja internetowa wysyła te tokeny JWT z żądaniami, aby usługa Fleet Engine uznała je za uwierzytelnione i upoważnione do dostępu do danych w żądaniu. 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 w przypadku pakietu SDK JavaScript dla konsumentów do udostępniania postępu podróży należy pamiętać o tych kwestiach:- Ogólne wskazówki dotyczące wystawiania 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 co najmniej jeden z tych warunków:
Prawidłowy token nie istnieje, np. jeśli pakiet SDK nie wywołał modułu pobierania przy nowym wczytywaniu strony lub moduł pobierania nie zwrócił żądania z tokenem.
Token wygasł.
Token wygaśnie w ciągu minuty.
W przeciwnym razie pakiet JavaScript Consumer SDK używa wydanego wcześniej prawidłowego tokena i nie wywołuje funkcji pobierania.
Tworzenie modułu pobierania tokenów autoryzacji
Aby utworzyć funkcję pobierania tokenu autoryzacyjnego, postępuj zgodnie z tymi wskazówkami:
Pobieranie musi zwracać strukturę danych z 2 polami, zapakowaną w
Promise
w ten sposób:Ciąg
token
.Liczba
expiresInSeconds
. Token wygasa po tym czasie po pobraniu. Narzędzie do pobierania tokenów uwierzytelniania musi przekazać czas do wygaśnięcia (w sekundach) od momentu pobrania danych do biblioteki, jak pokazano w przykładzie.
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 adres URL dotyczy back-endu przykładowej aplikacji na GitHubie:https://SERVER_URL/token/consumer/TRIPID
Przykład – tworzenie funkcji pobierania tokenu uwierzytelniania
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,
};
}