JavaScript Consumer SDK einrichten

Mit dem JavaScript Consumer SDK kann Ihre Nutzer-App den Standort Fahrzeuge und andere Orte von Interesse, die in Fleet Engine auf einem webbasierten 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:

  1. Aktivieren Sie die Maps JavaScript API.
  2. Richten Sie die Autorisierung ein.

Maps JavaScript API aktivieren

Die Maps JavaScript API im verwendeten Google Cloud Console-Projekt aktivieren für Ihre Fleet Engine-Instanz. Weitere Informationen finden Sie in der Maps JavaScript API-Dokumentation unter APIs aktivieren.

Autorisierung einrichten

Für API-Methodenaufrufe aus Low-Trust-Umgebungen benötigt Fleet Engine Verwendung von JSON-Webtokens (JWTs), die von einem entsprechenden Dienstkonto signiert wurden. Zu den Umgebungen mit wenig Vertrauen gehören Smartphones und Browser. Ein JWT Sie stammen von Ihrem Server, einer voll vertrauenswürdigen Umgebung. Das JWT wird signiert, verschlüsselt und an den Client für den nachfolgenden Server übergeben. Interaktionen, bis sie abläuft oder nicht mehr gültig ist.

Ihr Backend sollte sich mit der folgenden Methode bei Fleet Engine authentifizieren und autorisieren Standardmechanismen für Standardanmeldedaten für Anwendungen. Marke Verwenden Sie JWTs, die von einem entsprechenden Dienstkonto signiert wurden. Eine Liste der Dienstkontorollen finden Sie unter Fleet Engine-Dienstkontorollen in Fleet Engine – Grundlagen.

Ihre Verbraucher-App sollte Ihre Endnutzer mit dem Rolle delivery_consumer aus Ihrem Google Cloud-Projekt, um nur zurückzugeben verbraucherspezifische Informationen. So filtert und entfernt Fleet Engine alle in den Antworten weitere Informationen geben. Bei einer Aufgabe zur Nichtverfügbarkeit werden beispielsweise keine Standortinformationen an einen Endnutzer weitergegeben. Informationen zu geplanten Aufgaben finden Sie unter Rollen für Dienstkonten.

Im Gegensatz dazu sollte sich Ihr Backend bei Fleet Engine authentifizieren und autorisieren mit standardmäßigen Standardanmeldedaten für Anwendungen Mechanismen.

Wie funktioniert die Autorisierung?

Die Autorisierung mit Fleet Engine-Daten erfolgt sowohl server- als auch clientseitig 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 im Abschnitt JSON Web Tokens ausstellen.

Beachten Sie insbesondere Folgendes für das JavaScript Consumer SDK zum Sendungs-Tracking:

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 ist kein gültiges Token vorhanden, beispielsweise wenn das SDK den Fetcher auf einem der Seitenaufbau neu geladen wird oder der Fetcher kein Token mehr 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.

Abruf von Autorisierungstokens erstellen

Erstelle den Abrufmechanismus für Autorisierungstokens unter Berücksichtigung der folgenden Richtlinien:

  • Der Fetcher muss eine Datenstruktur mit zwei Feldern zurückgeben, die in eine Promise so:

    • Einen String token.

    • Eine Zahl expiresInSeconds. Ein Token läuft nach dem Abrufen nach dieser Zeit ab. Beim Abrufen von Authentifizierungstokens muss das Ablaufdatum überschritten werden. Zeit in Sekunden, vom Zeitpunkt des Abrufs bis zur Bibliothek, wie in für das Beispiel.

  • Der Abruf sollte eine URL auf deinem Server aufrufen, um ein Token abzurufen. Diese URL (SERVER_TOKEN_URL) hängt von Ihrer Backend-Implementierung ab. Die Die folgende Beispiel-URL bezieht sich auf das Back-End der Beispiel-App auf GitHub:

    • https://SERVER_URL/token/delivery_consumer/TRACKING_ID

Beispiel – Abruf eines Authentifizierungstokens 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,
  };
}

Nächste Schritte