Bevor Sie die JavaScript-Flotten-Tracking-Bibliothek verwenden, müssen Sie mit Fleet Engine vertraut sind und Fleet Engine 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. Wenn Ihre Anfragen an Fleet Engine mit den richtigen Autorisierungstokens eingerichtet ist, können Sie ein Fahrzeug auf einer Karte verfolgen.
Autorisierung einrichten
Fleet Engine erfordert die Verwendung von JSON Web Tokens (JWTs), die von einem Entsprechendes Dienstkonto für API-Methodenaufrufe aus Low-Trust- Umgebungen. Zu den Umgebungen mit wenig Vertrauen gehören Smartphones und Browser. Ein JWT stammt von Ihrem Server, einer vollkommen 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. Für eine Eine Liste der Dienstkontorollen finden Sie unter Fleet Engine-Dienstkontorollen. in Fleet Engine-Grundlagen.
Wie funktioniert die Autorisierung?
Die Autorisierung mit Fleet Engine-Daten erfolgt sowohl server- als auch clientseitig Implementierung.
Serverseitige Autorisierung
Bevor Sie die Autorisierung in Ihrer Flotten-Tracking-Anwendung einrichten, muss der Server JSON Web Tokens bereitstellen können. So kann Fleet Engine erkennt die Anfragen, die von Ihrer Anwendung kommen, als für den Zugriff autorisiert sind. die Daten in der Anfrage. Eine Anleitung zur serverseitigen JWT-Implementierung findest du unter Geben Sie JSON Web Tokens in Fleet Engine Essentials aus.
Wie Sie bei der Implementierung des Flotten-Trackings Tokens von Ihrem Server generieren, erfahren Sie hier:- Allgemeine Richtlinien für die Ausstellung von JSON Web Tokens, einschließlich für On-Demand-Fahrten und geplante Aufgaben
- On-Demand-Fahrten: Beispieltoken für einen Backend-Servervorgang
- Geplante Aufgaben: Beispieltoken zum Nachverfolgen aller Aufgaben und Fahrzeuge in der Flotte
Clientseitige Autorisierung
Wenn Sie die JavaScript-Flotten-Tracking-Bibliothek verwenden, fordert sie mithilfe eines Abruf von Autorisierungstokens. 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 die Tracking-Bibliothek für die JavaScript-Flotte das zuvor ausgestellte, gültige Token und nutzt nicht den Fetcher aufrufen.
Abruf von Autorisierungstokens erstellen
Erstellen Sie den Abruf von 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 in dieser Zeit ab nach dem Abrufen. 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. Dieses Die URL (
SERVER_TOKEN_URL
) hängt von Ihrer Back-End-Implementierung ab. Die folgende Beispiel-URL bezieht sich auf das Backend der Beispielanwendung auf GitHub:https://SERVER_URL/token/fleet_reader
Beispiel – Autorisierungstoken-Abruf erstellen
Die folgenden Beispiele zeigen, wie ein Autorisierungstoken-Abruf erstellt wird:
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,
};
}