Configurer la bibliothèque de suivi de parc JavaScript

Avant d'utiliser la bibliothèque JavaScript de suivi de parc, assurez-vous de bien connaître Fleet Engine et de l'avoir configuré. Pour en savoir plus, consultez Fleet Engine.

Ce document explique comment activer l'autorisation entre l'application de page Web et Fleet Engine. Une fois vos requêtes à Fleet Engine configurées avec les jetons d'autorisation appropriés, vous pourrez suivre un véhicule sur une carte.

Configurer les autorisations

Pour les appels de méthode API provenant d'environnements à faible confiance, Fleet Engine nécessite l'utilisation de jetons Web JSON (JWT) signés par un compte de service approprié. Les environnements à faible confiance incluent les smartphones et les navigateurs. Les jetons JWT proviennent de votre serveur, qui est un environnement entièrement approuvé. Le jeton JWT est signé, chiffré et transmis au client pour les interactions ultérieures avec le serveur jusqu'à son expiration ou jusqu'à ce qu'il ne soit plus valide.

Votre backend doit s'authentifier et autoriser l'accès à Fleet Engine à l'aide des mécanismes standards relatifs aux identifiants par défaut de l'application. Assurez-vous d'utiliser des jetons JWT signés par un compte de service approprié. Pour obtenir la liste des rôles de compte de service, consultez les rôles de compte de service Fleet Engine dans la section Principes de base de Fleet Engine.

En revanche, votre backend doit s'authentifier et s'autoriser auprès de Fleet Engine à l'aide de mécanismes Identifiants par défaut de l'application standards.

Comment fonctionne l'autorisation ?

L'autorisation avec les données de Fleet Engine implique une implémentation côté serveur et côté client.

Autorisation côté serveur

Avant de configurer l'authentification et l'autorisation dans votre application de suivi de parc, votre serveur backend doit être en mesure d'émettre des jetons Web JSON à cette application pour qu'elle puisse accéder à Fleet Engine. Votre application de suivi Fleet envoie ces jetons JWT avec ses requêtes afin que Fleet Engine les reconnaisse comme authentifiées et autorisées à accéder aux données de la requête. Pour obtenir des instructions sur l'implémentation côté serveur des jetons JWT, consultez Émettre des jetons Web JSON sous Éléments essentiels de Fleet Engine.

Pour générer des jetons à partir de votre serveur lors de l'implémentation du suivi de flotte, consultez les éléments suivants :

Autorisation côté client

Lorsque vous utilisez la bibliothèque JavaScript de suivi de parc, elle demande un jeton au serveur à l'aide d'un récupérateur de jetons d'autorisation. Cela se produit lorsque l'une des conditions suivantes est remplie :

  • Aucun jeton valide n'existe, par exemple lorsque le SDK n'a pas appelé le récupérateur lors d'un nouveau chargement de page ou lorsque le récupérateur n'a pas renvoyé de jeton.

  • Le jeton a expiré.

  • Le jeton expire dans la minute qui suit son expiration.

Sinon, la bibliothèque JavaScript de suivi de parc utilise le jeton valide précédemment émis et n'appelle pas l'outil de récupération.

Créer un récupérateur de jetons d'autorisation

Créez votre récupérateur de jetons d'autorisation en suivant ces consignes :

  • Le récupérateur doit renvoyer une structure de données avec deux champs, encapsulée dans un Promise comme suit :

    • Une chaîne token.

    • Un nombre expiresInSeconds. Un jeton expire au bout de ce délai après l'extraction. L'outil de récupération de jetons d'authentification doit transmettre le délai d'expiration en secondes à partir du moment où l'extraction vers la bibliothèque est effectuée, comme illustré dans l'exemple.

  • Le programme de récupération doit appeler une URL sur votre serveur pour récupérer un jeton. Cette URL (SERVER_TOKEN_URL) dépend de la mise en œuvre de votre backend. L'exemple d'URL suivant est pour le backend de l'application exemple sur GitHub :

    • https://SERVER_URL/token/fleet_reader

Exemple : Créer un outil de récupération de jetons d'autorisation

Les exemples suivants montrent comment créer un récupérateur de jetons d'autorisation :

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,
  };
}

Étape suivante