Prima di utilizzare la libreria di monitoraggio del parco veicoli JavaScript, assicurati di conoscere e aver configurato Fleet Engine. Per maggiori dettagli, consulta Fleet Engine.
Questo documento mostra come attivare l'autorizzazione tra l'app della pagina web e Fleet Engine. Dopo aver configurato le richieste a Fleet Engine con i token di autorizzazione corretti, potrai monitorare un veicolo su una mappa.
Configura l'autorizzazione
Per le chiamate di metodi API da ambienti a bassa attendibilità, Fleet Engine richiede l'utilizzo di token web JSON (JWT) firmati da un account di servizio appropriato. Gli ambienti a basso livello di attendibilità includono smartphone e browser. Un JWT ha origine 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 tuo backend deve autenticarsi e autorizzare Fleet Engine utilizzando i meccanismi standard delle credenziali predefinite dell'applicazione. Assicurati di utilizzare JWT firmati da un account di servizio appropriato. Per un elenco dei ruoli degli account di servizio, consulta i ruoli degli account di servizio Fleet Engine in Nozioni di base su Fleet Engine.
Al contrario, il backend deve autenticarsi e autorizzare Fleet Engine utilizzando i meccanismi standard di Credenziali predefinite dell'applicazione.
Come funziona l'autorizzazione?
L'autorizzazione con i dati di Fleet Engine prevede l'implementazione sia lato server sia lato client.
Autorizzazione lato server
Prima di configurare l'autenticazione e l'autorizzazione nell'applicazione di monitoraggio del parco veicoli, il server di backend deve essere in grado di emettere token web JSON per l'applicazione di monitoraggio del parco veicoli per accedere a Fleet Engine. L'applicazione di monitoraggio del parco veicoli invia questi JWT con le sue richieste in modo che Fleet Engine le riconosca come autenticate e autorizzate ad accedere ai dati al loro interno. Per istruzioni sull'implementazione JWT lato server, consulta Emettere token web JSON in Elementi essenziali di Fleet Engine.
Per generare token dal server durante l'implementazione del monitoraggio del parco risorse, consulta quanto segue:- Linee guida generali per l'emissione di token web JSON, incluse sezioni per corse on demand e attività pianificate
- Viaggi on demand: token di esempio per un'operazione del server di backend
- Attività pianificate: token di esempio per monitorare tutte le attività e i veicoli del parco auto e motori
Autorizzazione lato client
Quando utilizzi la libreria di monitoraggio del parco veicoli JavaScript, questa richiede un token dal server utilizzando un recupero del token di autorizzazione. Ciò avviene nei seguenti casi:
Non esistono token validi, ad esempio se l'SDK non ha chiamato il fetcher in un nuovo caricamento pagina o quando il fetcher non ha restituito un token.
Il token è scaduto.
Il token scade entro un minuto dalla scadenza.
In caso contrario, la libreria di monitoraggio del parco veicoli JavaScript utilizza il token valido emesso in precedenza e non chiama il recuperatore.
Crea un recuperatore di token di autorizzazione
Crea il tuo recuperatore del token di autorizzazione seguendo queste linee guida:
Il locatore deve restituire una struttura di dati con due campi, racchiusa in un
Promise
come segue:Una stringa
token
.Un numero
expiresInSeconds
. Un token scade dopo questo periodo di tempo dopo il recupero. Il fetcher del token di autenticazione deve passare la scadenza in secondi, dal momento del recupero alla libreria, come mostrato nell'esempio.
Il fetcher deve chiamare un URL sul tuo server per recuperare un token. Questo URL,
SERVER_TOKEN_URL
, dipende dall'implementazione del backend. Il seguente URL di esempio è per il backend dell'app di esempio su GitHub:https://SERVER_URL/token/fleet_reader
Esempio: crea un recuperatore di token di autorizzazione
Gli esempi riportati di seguito mostrano come creare un recuperatore 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,
};
}