Avant d'utiliser la bibliothèque de suivi de parc JavaScript, assurez-vous de connaître Fleet Engine et d'avoir configuré ce dernier. Pour en savoir plus, consultez Moteur de flotte.
Ce document explique comment activer les autorisations entre les de votre application de page Web et de 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
Fleet Engine nécessite l'utilisation de jetons Web JSON (JWT) signés par un compte de service approprié pour les appels de méthode API à partir de systèmes environnements Google Cloud. Les environnements à faible confiance incluent les smartphones et les navigateurs. Un jeton JWT proviennent de votre serveur, qui est un environnement entièrement approuvé. Le jeton JWT est signé, chiffré et transmis au client pour le serveur suivant jusqu'à ce qu'il expire ou qu'il ne soit plus valide.
Votre backend doit s'authentifier et s'autoriser auprès de Fleet Engine à l'aide des mécanismes standards des identifiants par défaut de l'application. Veillez à utiliser des jetons JWT signés par un compte de service approprié. Pour une liste des rôles de compte de service, consultez la page Rôles de compte de service Fleet Engine du cours sur les principes de base des moteurs de flotte.
Comment fonctionne l'autorisation ?
L'autorisation avec les données Fleet Engine implique à la fois côté serveur et côté client la mise en œuvre.
Autorisation côté serveur
Avant de configurer l'autorisation dans votre application de suivi de parc, votre backend doit pouvoir diffuser des jetons Web JSON. De cette façon, Fleet Engine reconnaît que les requêtes provenant de votre application sont autorisées à accéder les données de la demande. Pour obtenir des instructions sur l'implémentation de jetons JWT côté serveur, consultez Émettez des jetons Web JSON sous Fleet Engine Essentials.
Pour générer des jetons à partir de votre serveur lors de la mise en œuvre du suivi de parc, consultez la suivantes:- Consignes générales pour émettre des jetons Web JSON, y compris pour les trajets à la demande et les tâches planifiées.
- Trajets à la demande: Exemple de jeton pour une opération de serveur backend
- Tâches planifiées : Exemple de jeton pour suivre toutes les tâches et tous les véhicules de la flotte
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 et l'outil de récupération de jetons d'autorisation. Cela se produit lorsque l'une des conditions suivantes est remplie :
Il n'existe aucun jeton valide, par exemple lorsque le SDK n'a pas appelé le récupérateur sur un nouveau chargement de page ou lorsque l'outil d'extraction ne renvoie pas 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 effectue et non à appeler l'outil d'extraction.
Créer un outil de récupération de jetons d'autorisation
Créez votre outil de récupération de jetons d'autorisation en suivant ces consignes:
L'extracteur doit renvoyer une structure de données avec deux champs, encapsulés 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ù la bibliothèque est récupérée, comme indiqué dans l'exemple.
Le programme de récupération doit appeler une URL sur votre serveur pour récupérer un jeton. Ce L'URL (
SERVER_TOKEN_URL
) dépend de la mise en œuvre de votre backend. La L'exemple d'URL suivant concerne l'exemple de backend d'application 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 outil de récupération 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,
};
}