Prima di utilizzare la libreria di monitoraggio del parco risorse JavaScript, assicurati di che hanno già configurato Fleet Engine. Per maggiori dettagli, vedi Motore del parco risorse.
Questo documento mostra come abilitare l'autorizzazione tra nella tua app sulla pagina web e Fleet Engine. Una volta che le richieste a Fleet Engine configurati con i token di autorizzazione corretti, sarai pronto monitorare un veicolo su una mappa.
Configura l'autorizzazione
Fleet Engine richiede l'utilizzo di token web JSON (JWT) firmati da un account di servizio appropriato per le chiamate ai metodi API da bassa attendibilità ambienti cloud-native. Gli ambienti a basso livello di attendibilità includono smartphone e browser. Un JWT viene generato sul tuo server, che è un ambiente completamente attendibile. Il JWT viene firmato, criptato e passato al client per le interazioni successive con il server finché non scade o non è più valido.
Il backend deve autenticarsi e autorizzare Fleet Engine utilizzando meccanismi standard delle Credenziali predefinite dell'applicazione. Marca accertati di utilizzare JWT firmati da un account di servizio appropriato. Per un elenco dei ruoli dell'account di servizio. Vedi i ruoli dell'account di servizio di Fleet Engine in Nozioni di base su Fleet Engine.
Come funziona l'autorizzazione?
L'autorizzazione con i dati di Fleet Engine riguarda sia lato server che lato client implementazione.
Autorizzazione lato server
Prima di configurare l'autorizzazione nell'applicazione di monitoraggio della flotta, il server di backend deve essere in grado di pubblicare token web JSON. In questo modo, Fleet Engine riconosce le richieste provenienti dalla tua applicazione come autorizzate ad accedere i dati nella richiesta. Per istruzioni sull'implementazione del JWT lato server, consulta Emettere token web JSON in Elementi essenziali di Fleet Engine.
Per generare token dal tuo server durante l'implementazione del monitoraggio del parco risorse, consulta le seguenti:- Linee guida generali per l'emissione di token web JSON, tra cui: sezioni sia per i viaggi on demand sia per le attività programmate
- Corse on demand: token di esempio per un'operazione del server di backend
- Attività programmate: token di esempio per monitorare tutte le attività e i veicoli nel parco risorse
Autorizzazione lato client
Quando utilizzi la libreria di monitoraggio del parco risorse JavaScript, questa richiede un token al server utilizzando un il fetcher del token di autorizzazione. Ciò avviene nei seguenti casi:
Non esistono token validi, ad esempio se l'SDK non ha chiamato il fetcher su un nuovo caricamento di pagina o quando il fetcher non ha restituito un token.
Il token è scaduto.
Il token sta per scadere entro un minuto.
In caso contrario, la libreria di monitoraggio del parco risorse JavaScript utilizza il token valido emesso in precedenza e non chiamare il fetcher.
Crea un fetcher di token di autorizzazione
Crea il fetcher del token di autorizzazione seguendo queste linee guida:
Il fetcher deve restituire una struttura di dati con due campi, aggregati in una
Promise
come segue:Una stringa
token
.Un numero
expiresInSeconds
. Un token scade in questo periodo di tempo dopo il recupero. Il fetcher del token di autenticazione deve superare la scadenza tempo in secondi, dal momento del recupero nella libreria, come mostrato in dell'esempio.
Il fetcher deve chiamare un URL sul tuo server per recuperare un token. Questo L'URL
SERVER_TOKEN_URL
dipende dall'implementazione del backend. La Il seguente URL di esempio riguarda il backend dell'app di esempio su GitHub:https://SERVER_URL/token/fleet_reader
Esempio: creare un fetcher di token di autorizzazione
I seguenti esempi mostrano come creare un fetcher di token di autorizzazione:
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,
};
}