Avec le SDK client JavaScript, votre application grand public peut indiquer la position des véhicules et d'autres lieux d'intérêt suivis via un réseau sur la carte. Cela permet à vos utilisateurs de voir l'état de leurs envois. Ce guide suppose que vous avez configuré Fleet Engine avec son projet Google Cloud et ses 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 Google Cloud Console que vous utilisez pour votre instance Fleet Engine. Pour en savoir plus, consultez la section Activer des API dans la documentation de l'API Maps JavaScript.
Configurer les autorisations
Pour les appels de méthode API à partir d'environnements à faible confiance, Fleet Engine requiert 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. 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 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 de Identifiants par défaut de l'application. Marque veillez à 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.
Votre application grand public doit authentifier vos utilisateurs finaux avec le le rôledelivery_consumer
de votre projet Google Cloud pour renvoyer uniquement
des informations spécifiques aux consommateurs. De cette façon, Fleet Engine filtre et masque
d'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. Pour en savoir plus sur les tâches planifiées, consultez la section Rôles de compte de service.
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 Fleet Engine implique à la fois côté serveur et côté client la mise en œuvre.
Autorisation côté serveur
Avant de configurer l'authentification et l'autorisation dans votre application, votre serveur backend doit pouvoir émettre des jetons Web JSON vers votre Web pour 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és et autorisés à accéder aux données requête. Pour obtenir des instructions sur l'implémentation de jetons JWT côté serveur, consultez la section Problème JSON Web Jetons sous Fleet Engine Essentials.
En particulier, gardez à l'esprit ce qui suit pour le SDK client JavaScript pour suivi du colis:- Consignes générales pour émettre des jetons Web JSON
- Consignes concernant le jeton JWT pour les tâches planifiées
- Exemple de jeton pour une application consommateur
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. Elle le fait 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 le récupérateur.
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 laps de temps 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ù la bibliothèque est récupérée, comme indiqué dans l'exemple.
Le récupérateur 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/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,
};
}