Configura l'SDK consumer JavaScript

Con l'SDK consumer JavaScript, la tua app consumer può mostrare la posizione dei veicoli e di altre località di interesse monitorate in Fleet Engine su una mappa basata sul web. In questo modo, i tuoi utenti consumatori possono vedere l'avanzamento delle spedizioni. Questa guida presuppone che tu abbia configurato Fleet Engine con il progetto Google Cloud e le chiavi API associati. Per maggiori dettagli, vedi Floet Engine.

Per configurare JavaScript Consumer SDK:

  1. Abilita l'API Maps JavaScript.
  2. Configurare le autorizzazioni.

Attivare l'API Maps JavaScript

Attiva l'API JavaScript di Maps nel progetto della console Google Cloud che utilizzi per l'istanza di Fleet Engine. Per maggiori dettagli, consulta Attivare le API nella documentazione dell'API Maps 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. 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.

L'app consumer deve autenticare gli utenti finali con Ruolo delivery_consumer del progetto Google Cloud da restituire solo informazioni specifiche del consumatore. In questo modo, Fleet Engine filtra e oscura tutte le altre informazioni nelle risposte. Ad esempio, durante un'attività di indisponibilità, le informazioni sulla posizione non vengono condivise con un utente finale. Consulta Ruoli dell'account di servizio per le attività pianificate.

Al contrario, il backend deve autenticarsi e autorizzarsi in Fleet Engine utilizzando i meccanismi standard delle 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 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 monitoraggio delle spedizioni:

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 quando una delle seguenti condizioni è vera:

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

  • Il token è scaduto.

  • Il token scade entro un minuto dalla scadenza.

In caso contrario, l'SDK consumer 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 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 recuperatore del token di autenticazione deve passare il tempo di scadenza in secondi, dal momento del recupero alla raccolta, come mostrato nell'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. Il seguente URL di esempio è per il backend dell'app di esempio su GitHub:

    • https://SERVER_URL/token/delivery_consumer/TRACKING_ID

Esempio: crea un recuperatore di token di autenticazione

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,
  };
}

Passaggi successivi