JavaScript-Flotten-Tracking-Bibliothek einrichten

Bevor Sie die JavaScript-Bibliothek für das Flotten-Tracking verwenden, sollten Sie mit Fleet Engine vertraut sein und sie eingerichtet haben. Weitere Informationen finden Sie unter Fleet Engine.

In diesem Dokument wird beschrieben, wie Sie die Autorisierung zwischen der Webanwendung und der Fleet Engine aktivieren. Sobald Ihre Anfragen an die Fleet Engine mit den richtigen Autorisierungstokens eingerichtet sind, können Sie ein Fahrzeug auf einer Karte verfolgen.

Autorisierung einrichten

Für API-Methodenaufrufe aus Umgebungen mit geringem Vertrauen erfordert die Fleet Engine die Verwendung von JSON Web Tokens (JWTs), die von einem geeigneten Dienstkonto signiert wurden. 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 Backend sollte sich mithilfe der standardmäßigen Standardanmeldedaten für Anwendungen bei der 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.

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 Flotten-Tracking-Anwendung einrichten, muss Ihr Back-End-Server JSON-Webtokens für Ihre Flotten-Tracking-Anwendung ausstellen können, um auf die Fleet Engine zuzugreifen. Ihre Flotten-Tracking-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 Fleet Engine Essentials unter Issue JSON Web Tokens (JSON-Webtokens ausgeben).

Informationen zum Generieren von Tokens über Ihren Server beim Implementieren des Flotten-Trackings finden Sie hier:

Clientseitige Autorisierung

Wenn Sie die JavaScript-Fleet-Tracking-Bibliothek 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 in weniger als einer Minute ab.

Andernfalls verwendet die JavaScript-Bibliothek für die Fahrzeugverfolgung 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 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 Abrufmechanismus für das Authentifizierungstoken muss die Ablaufzeit in Sekunden vom Abruf bis zur 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 Back-End-Implementierung ab. Die folgende Beispiel-URL bezieht sich auf das Back-End der Beispiel-App auf GitHub:

    • https://SERVER_URL/token/fleet_reader

Beispiel: Abrufprogramm für Autorisierungstoken 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