Mit dem JavaScript Consumer SDK kann in Ihrer Verbraucher-App der Standort von Fahrzeugen und anderen in Fleet Engine erfassten Orten von Interesse auf einer webbasierten Karte angezeigt werden. So können Ihre Nutzer den Fortschritt ihrer Sendungen sehen. In diesem Leitfaden wird davon ausgegangen, dass Sie Fleet Engine mit dem zugehörigen Google Cloud-Projekt und den API-Schlüsseln eingerichtet haben. Weitere Informationen finden Sie unter Fleet Engine.
So richten Sie das JavaScript Consumer SDK ein:
Maps JavaScript API aktivieren
Aktivieren Sie die Maps JavaScript API in dem Google Cloud Console-Projekt, das Sie für Ihre Fleet Engine-Instanz verwenden. Weitere Informationen finden Sie in der Dokumentation zur Maps JavaScript API unter APIs aktivieren.
Autorisierung einrichten
Für API-Methodenaufrufe aus Umgebungen mit geringem Vertrauensniveau (Smartphones und Browser) ist in Fleet Engine die Verwendung von JSON-Webtokens (JWTs) erforderlich.
Ein JWT wird auf Ihrem Server erstellt, signiert, verschlüsselt und an den Client übergeben. Es wird für nachfolgende Serverinteraktionen verwendet, bis es abläuft oder nicht mehr gültig ist.
Wichtige Details
- Verwenden Sie Standardanmeldedaten für Anwendungen, um sich bei Fleet Engine zu authentifizieren und zu autorisieren.
- Verwenden Sie ein geeignetes Dienstkonto zum Signieren von JWTs. Weitere Informationen finden Sie unter Rollen für Fleet Engine-Dienstkonten in Fleet Engine-Grundlagen.
delivery_consumer
aus Ihrem Google Cloud-Projekt authentifizieren, um nur verbraucherspezifische Informationen zurückzugeben. Auf diese Weise filtert und entfernt Fleet Engine alle anderen Informationen in den Antworten. Während einer Aufgabe zur Nichtverfügbarkeit werden beispielsweise keine Standortinformationen mit einem Endnutzer geteilt. Weitere Informationen zu Rollen für Dienstkonten für geplante Aufgaben finden Sie unter Rollen für Dienstkonten.
Wie funktioniert die Autorisierung?
Die Autorisierung mit Fleet Engine-Daten umfasst sowohl die serverseitige als auch die clientseitige Implementierung.
Serverseitige Autorisierung
Bevor Sie die Authentifizierung und Autorisierung in Ihrer webbasierten Anwendung einrichten, muss Ihr Backend-Server in der Lage sein, JSON-Web-Tokens für den Zugriff auf Fleet Engine an Ihre webbasierte Anwendung auszugeben. Ihre webbasierte Anwendung sendet diese JWTs mit ihren Anfragen, damit Fleet Engine die Anfragen als authentifiziert und autorisiert für den Zugriff auf die Daten in der Anfrage erkennt. Eine Anleitung zur serverseitigen JWT-Implementierung finden Sie unter JSON Web Tokens ausstellen im Abschnitt Fleet Engine Essentials.
Beachten Sie insbesondere Folgendes für das JavaScript Consumer SDK zum Verfolgen von Sendungen:- Allgemeine Richtlinien für die Ausstellung von JSON-Webtokens
- JWT-Richtlinien für geplante Aufgaben
- Beispiel für ein Token für eine Consumer-App
Clientseitige Autorisierung
Wenn Sie das JavaScript Consumer SDK verwenden, wird mit einem Autorisierungstoken-Fetcher ein Token vom Server angefordert. Das passiert, wenn eine der folgenden Bedingungen zutrifft:
Es ist kein gültiges Token vorhanden, z. B. wenn das SDK den Fetcher bei einem neuen Seitenaufruf nicht aufgerufen hat oder wenn der Fetcher kein Token zurückgegeben hat.
Das Token ist abgelaufen.
Das Token läuft in weniger als einer Minute ab.
Andernfalls verwendet das JavaScript Consumer SDK das zuvor ausgestellte, gültige Token und ruft den Fetcher nicht auf.
Autorisierungstoken-Fetcher erstellen
Erstellen Sie den Fetcher für Autorisierungstokens anhand der folgenden Richtlinien:
Der Fetcher muss eine Datenstruktur mit zwei Feldern zurückgeben, die wie folgt in ein
Promise
eingebunden ist:Ein String
token
.Eine Zahl
expiresInSeconds
. Ein Token läuft nach diesem Zeitraum nach dem Abrufen ab. Der Abrufer für das Authentifizierungstoken muss die Ablaufzeit in Sekunden ab dem Zeitpunkt des Abrufs an die Bibliothek übergeben, wie im Beispiel gezeigt.
Der Fetcher sollte eine URL auf Ihrem Server aufrufen, um ein Token abzurufen. Diese URL – die
SERVER_TOKEN_URL
– hängt von Ihrer Backend-Implementierung ab. Die folgende Beispiel-URL verweist auf das Beispiel-App-Backend auf GitHub:https://SERVER_URL/token/delivery_consumer/TRACKING_ID
Beispiel: Authentifizierungstoken-Fetcher erstellen
Die folgenden Beispiele zeigen, wie Sie einen Fetcher für Autorisierungstokens erstellen:
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,
};
}