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 Twoi klienci mogą śledzić postępy kierowcy. 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 Google Cloud Console. Więcej informacji znajdziesz w artykule Włączanie interfejsów API w dokumentacji Google Cloud. Włącza to pakiet Consumer SDK w JavaScript.
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.
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 JavaScript Consumer SDK do udostępniania postępów podróży pamiętaj o tych kwestiach:- Ogólne wskazówki dotyczące wydawania tokenów sieciowych JSON
- Wskazówki dotyczące tokenów JWT w przypadku przejazdów na żądanie
- Przykładowy token operacji konsumenckiej
Autoryzacja po stronie klienta
Gdy korzystasz z pakietu JavaScript Consumer SDK, wysyła on do serwera żądanie tokena za pomocą funkcji pobierania tokena autoryzacji. Dzieje się tak, gdy spełniony jest którykolwiek z tych warunków:
Nie ma prawidłowego tokenu, np. gdy pakiet SDK nie wywołał pobierania przy świeżym wczytaniu strony lub gdy pobieranie nie zwróciło tokenu.
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 wygasa po upływie tego czasu od pobrania. Funkcja pobierania tokena uwierzytelniającego 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/consumer/TRIPID
Przykład – tworzenie funkcji pobierającej token uwierzytelniający
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,
};
}
Co dalej?
Śledzenie podróży w JavaScript