Con l'SDK JavaScript Consumer, la tua app consumer può mostrare la posizione veicoli e altre località di interesse monitorati in Fleet Engine in base ai dati mappa. Ciò permette ai consumatori di vedere i progressi nel percorso del conducente. Questa guida presuppone che tu abbia configurato Fleet Engine con il relativo account Google Cloud progetto e chiavi API. Per maggiori dettagli, vedi Floet Engine.
Per configurare JavaScript Consumer SDK:
Attiva l'API Maps JavaScript
Attiva l'API Maps JavaScript nella console Google Cloud. Per ulteriori dettagli, consulta Abilita le API nella documentazione di Google Cloud. Ciò consente SDK consumer per JavaScript.
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 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.
Al contrario, il backend deve autenticarsi e autorizzare Fleet Engine Utilizzando le Credenziali predefinite dell'applicazione standard i meccanismi dell'impatto del diamante.
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'autenticazione e l'autorizzazione nel il tuo server di backend deve essere in grado di inviare token web JSON al tuo basata sul web per l'accesso a Fleet Engine. La tua applicazione basata sul web invia questi JWT con le sue richieste in modo che Fleet Engine riconosca le richieste come autenticati e autorizzati ad accedere ai dati in richiesta. Per istruzioni sull'implementazione di JWT lato server, vedi Problema JSON sul Web Token in Fleet Engine Essentials.
In particolare, tieni presente quanto segue per l'SDK JavaScript consumer per condivisione del percorso:- Linee guida generali per l'emissione di token web JSON
- Linee guida JWT per viaggi on demand
- Token di esempio per un'operazione consumer
Autorizzazione lato client
Quando utilizzi JavaScript Consumer SDK, quest'ultimo 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 una caricamento di una nuova pagina o quando il fetcher non ha restituito un token.
Il token è scaduto.
Il token sta per scadere entro un minuto.
Altrimenti, JavaScript Consumer SDK utilizza il token valido emesso in precedenza e non chiama 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 dopo 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/consumer/TRIPID
Esempio - Creare un fetcher di token di autenticazione
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,
};
}