Mit dem JavaScript Consumer SDK können Sie in Ihrer Nutzer-App den Standort von Fahrzeugen und andere Standorte von Interesse, die in Fleet Engine erfasst werden, auf einer webbasierten Karte anzeigen. So können Ihre Nutzer den Fortschritt ihrer Sendungen verfolgen. In dieser Anleitung 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 Maps JavaScript API-Dokumentation unter APIs aktivieren.
Autorisierung einrichten
Für API-Methodenaufrufe aus Umgebungen mit geringem Vertrauen benötigt Fleet Engine die Verwendung von JSON-Webtokens (JWTs), die von einem entsprechenden Dienstkonto signiert sind. Beispiele für Umgebungen mit geringem Vertrauen sind Smartphones und Browser. Ein JWT stammt von deinem Server, einer vollkommen vertrauenswürdigen Umgebung. Das JWT wird signiert, verschlüsselt und für nachfolgende Serverinteraktionen an den Client übergeben, bis es abläuft oder nicht mehr gültig ist.
Ihr Back-End sollte sich mithilfe der Standardmechanismen für Standardanmeldedaten für Anwendungen bei Fleet Engine authentifizieren und autorisieren. Verwenden Sie JWTs, die von einem geeigneten Dienstkonto signiert wurden. Eine Liste der Dienstkontorollen finden Sie unter Fleet Engine-Dienstkontorollen in Fleet Engine – Grundlagen.
Ihre Nutzeranwendung sollte Ihre Endnutzer mit der Rolledelivery_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. Bei einer Nichtverfügbarkeitsaufgabe werden beispielsweise keine Standortinformationen an einen Endnutzer weitergegeben. Informationen zu geplanten Aufgaben finden Sie unter Rollen für Dienstkonten.
Ihr Backend sollte sich dagegen mithilfe der standardmäßigen Standardanmeldedaten für Anwendungen bei der Fleet Engine authentifizieren und autorisieren.
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 Back-End-Server JSON-Webtokens für Ihre webbasierte Anwendung ausstellen können, um auf die Fleet Engine zuzugreifen. Ihre webbasierte Anwendung sendet diese JWTs mit ihren Anfragen, damit die 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 Fleet Engine Essentials unter Issue JSON Web Tokens (JSON-Webtokens ausgeben).
Beachten Sie insbesondere Folgendes für das JavaScript Consumer SDK zum Sendungs-Tracking:- Allgemeine Richtlinien für die Ausstellung von JSON Web Tokens
- JWT-Richtlinien für geplante Aufgaben
- Beispiel für ein Token für eine Verbraucher-App
Clientseitige Autorisierung
Wenn Sie das JavaScript Consumer SDK verwenden, wird über einen Autorisierungstoken-Abruf ein Token vom Server angefordert. Dies geschieht in folgenden Fällen:
Es gibt kein gültiges Token. Das kann z. B. passieren, wenn das SDK den Abrufer nicht bei einem neuen Seitenaufbau aufgerufen hat oder wenn der Abrufer kein Token zurückgegeben hat.
Das Token ist abgelaufen.
Das Token läuft innerhalb einer Minute ab.
Andernfalls verwendet das JavaScript Consumer SDK das zuvor ausgestellte gültige Token und ruft den Abruf nicht auf.
Abrufmechanismus für Autorisierungstoken erstellen
Erstellen Sie den Abruf von Autorisierungstokens unter Berücksichtigung der folgenden Richtlinien:
Der Fetcher muss eine Datenstruktur mit zwei Feldern zurückgeben, die wie folgt in eine
Promise
eingeschlossen ist:Einen String
token
.Eine Zahl
expiresInSeconds
. Ein Token läuft nach diesem Zeitraum nach dem Abrufen ab. Der Abruf von Authentifizierungstokens muss die Ablaufzeit in Sekunden vom Zeitpunkt des Abrufs bis zur Bibliothek übergeben, wie im Beispiel gezeigt.
Der Abrufer sollte eine URL auf Ihrem Server aufrufen, um ein Token abzurufen. Diese URL – die
SERVER_TOKEN_URL
– hängt von Ihrer Back-End-Implementierung ab. Die folgende Beispiel-URL bezieht sich auf das Back-End der Beispiel-App auf GitHub:https://SERVER_URL/token/delivery_consumer/TRACKING_ID
Beispiel: Abrufprogramm für Authentifizierungstoken erstellen
Die folgenden Beispiele zeigen, wie Sie einen Abrufmechanismus 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,
};
}