JavaScript-Flotten-Tracking-Bibliothek einrichten

Bevor Sie die JavaScript-Bibliothek für die Flottenverfolgung verwenden, sollten Sie sich mit Fleet Engine vertraut machen und Fleet Engine einrichten. Weitere Informationen finden Sie unter Fleet Engine.

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

Autorisierung einrichten

Für API-Methodenaufrufe aus Umgebungen mit geringem Vertrauensgrad (Smartphones und Browser) ist in Fleet Engine die Verwendung von JSON Web Tokens (JWTs) erforderlich.

Ein JWT wird auf Ihrem Server erstellt, signiert, verschlüsselt und an den Client weitergegeben. Es kann für nachfolgende Serverinteraktionen verwendet werden, 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, um JWTs zu signieren. Informationen zu den Dienstkontorollen von Fleet Engine finden Sie unter Grundlagen von Fleet Engine.

Wie funktioniert die Autorisierung?

Die Autorisierung mit Fleet Engine-Daten erfordert sowohl eine serverseitige als auch eine clientseitige Implementierung.

Serverseitige Autorisierung

Bevor Sie die Authentifizierung und Autorisierung in Ihrer Anwendung zur Flottenverfolgung einrichten, muss Ihr Backend-Server JSON Web Tokens für Ihre Anwendung zur Flottenverfolgung ausstellen können, um auf Fleet Engine zuzugreifen. Ihre Anwendung zur Flottenverfolgung sendet diese JWTs mit ihren Anfragen, damit Fleet Engine die Anfragen als authentifiziert erkennt und autorisiert, auf die Daten in der Anfrage zuzugreifen. Eine Anleitung zur serverseitigen JWT-Implementierung finden Sie unter JSON Web Tokens ausstellen unter Grundlagen von Fleet Engine.

Informationen zum Generieren von Tokens von Ihrem Server bei der Implementierung der Flottenverfolgung finden Sie hier:

Clientseitige Autorisierung

Wenn Sie die JavaScript-Bibliothek für die Flottenverfolgung verwenden, wird mit einem Abrufer für Autorisierungstokens ein Token vom Server angefordert. Dies geschieht, wenn eine der folgenden Bedingungen erfüllt ist:

  • Es ist kein gültiges Token vorhanden, z. B. wenn das SDK den Abrufer bei einem neuen Seitenaufbau nicht 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 Flottenverfolgung das zuvor ausgestellte, gültige Token und ruft den Abrufer nicht auf.

Abrufer für Autorisierungstokens erstellen

Erstellen Sie Ihren Abrufer für Autorisierungstokens anhand dieser Richtlinien:

  • Der Abrufer muss eine Datenstruktur mit zwei Feldern zurückgeben, die wie folgt in ein Promise eingeschlossen ist:

    • Ein String token.

    • Eine Zahl expiresInSeconds. Ein Token läuft nach dieser Zeit nach dem Abrufen ab. Der Abrufer für Authentifizierungstokens muss die Ablaufzeit in Sekunden ab dem Zeitpunkt des Abrufs an die Bibliothek übergeben, wie im Beispiel gezeigt.

  • Der Abrufer sollte eine URL auf Ihrem Server aufrufen , um ein Token abzurufen. Diese URL (SERVER_TOKEN_URL) hängt von Ihrer Backend-Implementierung ab. Die folgende Beispiel-URL gilt für das Backend der Beispiel-App auf GitHub:

    • https://SERVER_URL/token/fleet_reader

Beispiel: Abrufer für Autorisierungstokens erstellen

In den folgenden Beispielen wird gezeigt, wie Sie einen Abrufer 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