Configura la libreria di monitoraggio del parco risorse JavaScript

Prima di utilizzare la libreria di monitoraggio del parco veicoli JavaScript, assicurati di conoscere e aver configurato Fleet Engine. Per maggiori dettagli, vedi Fleet Engine.

Questo documento mostra come abilitare l'autorizzazione tra l'app della pagina web e Fleet Engine. Una volta configurate le richieste a Fleet Engine con i token di autorizzazione corretti, potrai monitorare un veicolo su una mappa.

Configura l'autorizzazione

Fleet Engine richiede l'utilizzo di token web JSON (JWT) per le chiamate ai metodi API da ambienti a bassa attendibilità: smartphone e browser.

Un JWT ha origine sul server, viene firmato, criptato e passato al client per le successive interazioni con il server fino alla scadenza o alla perdita di validità.

Dettagli chiave

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 nella tua applicazione di monitoraggio del parco veicoli, il server di backend deve essere in grado di emettere token web JSON per la tua applicazione di monitoraggio del parco veicoli per l'accesso a Fleet Engine. La tua applicazione di monitoraggio del parco veicoli invia questi JWT con le sue richieste in modo che Fleet Engine riconosca le richieste come autenticate e autorizzate ad accedere ai dati nella richiesta. Per istruzioni sull'implementazione dei JWT lato server, vedi Emettere token web JSON in Nozioni di base su Fleet Engine.

Per generare token dal server durante l'implementazione del monitoraggio del parco veicoli, vedi quanto segue:

Autorizzazione lato client

Quando utilizzi la libreria di monitoraggio del parco veicoli JavaScript, questa richiede un token al server utilizzando un recuperatore di token di autorizzazione. Lo fa quando si verifica una delle seguenti condizioni:

  • Non esiste un token valido, ad esempio quando l'SDK non ha chiamato il recuperatore al caricamento pagina o quando il recuperatore non ha restituito un token.

  • Il token è scaduto.

  • Il token scadrà entro un minuto.

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 recuperatore di token di autorizzazione utilizzando queste linee guida:

  • Il recuperatore deve restituire una struttura di dati con due campi, racchiusi in un Promise come segue:

    • Una stringa token.

    • Un numero expiresInSeconds. Un token scade dopo questo periodo di tempo dopo il recupero. Il recuperatore di token di autenticazione deve passare il tempo di scadenza in secondi, dal momento del recupero alla libreria, come mostrato nell'esempio.

  • Il recuperatore deve chiamare un URL sul server per recuperare un token. Questo URL, SERVER_TOKEN_URL, dipende dall'implementazione del backend. L' URL di esempio seguente è per il backend dell'app di esempio su GitHub:

    • https://SERVER_URL/token/fleet_reader

Esempio: crea un recuperatore di token di autorizzazione

I seguenti esempi 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,
  };
}

Passaggi successivi