Avec le SDK JavaScript Consumer, votre application grand public peut afficher la position de véhicules et d'autres lieux d'intérêt suivis dans Fleet Engine sur une carte Web. Les utilisateurs des produits grand public peuvent ainsi voir la progression de leurs expéditions. Dans ce guide, nous partons du principe que vous avez configuré Fleet Engine avec le projet Google Cloud et les clés API associés. Pour en savoir plus, consultez Fleet Engine.
Pour configurer le SDK client JavaScript, procédez comme suit :
Activer l'API Maps JavaScript
Activez l'API Maps JavaScript dans le projet de la console Google Cloud que vous utilisez pour votre instance Fleet Engine. Pour en savoir plus, consultez Activer les API dans la documentation de l'API Maps JavaScript.
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 JWT est signé, chiffré et transmis au client pour des interactions ultérieures avec le serveur jusqu'à ce qu'il expire ou 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 associés aux comptes de service, consultez la section sur les rôles des comptes de service Fleet Engine de la page Principes de base de Fleet Engine.
Votre application consommateur doit authentifier vos utilisateurs finaux avec le rôledelivery_consumer
depuis votre projet Google Cloud pour ne renvoyer que des informations spécifiques au consommateur. De cette manière, Fleet Engine filtre et masque toutes les autres informations dans les réponses. Par exemple, lors d'une tâche d'indisponibilité, aucune information de localisation n'est partagée avec un utilisateur final. Consultez la section Rôles associés aux comptes de service pour connaître les tâches planifiées.
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 Web, votre serveur backend doit être en mesure d'émettre des jetons Web JSON à votre application Web pour qu'elle puisse accéder à Fleet Engine. Votre application Web envoie ces jetons JWT avec ses requêtes afin que Fleet Engine reconnaisse les requêtes comme authentifiées et autorisées à accéder aux données de la requête. Pour obtenir des instructions sur l'implémentation de jetons JWT côté serveur, consultez la section Émettre des jetons Web JSON dans la section Fleet Engine Essentials (Principes de base de Fleet Engine).
Plus précisément, gardez à l'esprit les points suivants concernant le SDK client JavaScript pour le suivi des envois :- Consignes générales pour l'émission de jetons Web JSON
- Consignes concernant les jetons JWT pour les tâches planifiées
- Exemple de jeton pour une application grand public
Autorisation côté client
Lorsque vous utilisez le SDK client JavaScript, il 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, le SDK client JavaScript utilise le jeton valide précédemment émis et n'appelle pas l'outil de récupération.
Créer un outil de récupération de jetons d'autorisation
Créez votre récupérateur 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 dans ce délai après la récupération. 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 récupérateur 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/delivery_consumer/TRACKING_ID
Exemple : Créer un outil de récupération de jetons d'authentification
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,
};
}