Configura el SDK del consumidor de JavaScript

Selecciona la plataforma: Android iOS JavaScript

Con el SDK de consumidor para JavaScript, tu aplicación para consumidores puede mostrar la ubicación de los vehículos y otras ubicaciones de interés a las que se les hace un seguimiento en Fleet Engine en un mapa basado en la Web. Esto permite que tus consumidores vean el progreso del viaje del conductor. En esta guía, se supone que configuraste Fleet Engine con su proyecto de Google Cloud y sus claves de API asociados. Consulta Fleet Engine para obtener más detalles.

Para configurar el SDK de JavaScript para consumidores, sigue estos pasos:

  1. Habilitar la API de Maps JavaScript
  2. Configuración de la autorización

Habilita la API de Maps JavaScript

Habilita la API de Maps JavaScript en la consola de Google Cloud. Para obtener más detalles, consulta Habilita las APIs en la documentación de Google Cloud. Esto habilita el SDK de consumidor para JavaScript.

Configura la autorización

Fleet Engine requiere el uso de tokens web JSON (JWT) para las llamadas de método de la API desde entornos de bajo nivel de confianza: smartphones y navegadores.

Un JWT se origina en tu servidor, se firma, se encripta y se pasa al cliente para las interacciones posteriores con el servidor hasta que venza o deje de ser válido.

Detalles clave

¿Cómo funciona la autorización?

La autorización con datos de Fleet Engine implica la implementación tanto del servidor como del cliente.

Autorización del servidor

Antes de configurar la autenticación y la autorización en tu aplicación basada en la Web, tu servidor de backend debe poder emitir tokens web JSON a tu aplicación basada en la Web para acceder a Fleet Engine. Tu aplicación basada en la Web envía estos JWT con sus solicitudes para que Fleet Engine las reconozca como autenticadas y autorizadas para acceder a los datos de la solicitud. Para obtener instrucciones sobre la implementación de JWT del servidor, consulta Emite tokens web JSON en Conceptos básicos de Fleet Engine.

En particular, ten en cuenta lo siguiente para el SDK de JavaScript para consumidores que se usa para compartir el progreso del viaje:

Autorización del cliente

Cuando usas el SDK de consumidor para JavaScript, este solicita un token al servidor con un recuperador de tokens de autorización. Esto sucede cuando se cumple alguna de las siguientes condiciones:

  • No existe un token válido, como cuando el SDK no llamó al recuperador en una carga de página nueva o cuando el recuperador no devolvió un token.

  • El token ya venció.

  • El token vencerá en un minuto.

De lo contrario, el SDK de consumidor de JavaScript usa el token válido emitido anteriormente y no llama al recuperador.

Crea un recuperador de tokens de autorización

Crea tu recuperador de tokens de autorización con estos lineamientos:

  • El recuperador debe mostrar una estructura de datos con dos campos, unidos en un Promise de la siguiente manera:

    • Una cadena token.

    • Un número expiresInSeconds. Un token vence en esta cantidad de tiempo después de recuperarlo. El recuperador de tokens de autenticación debe pasar el tiempo de vencimiento en segundos, desde el momento de la recuperación hasta la biblioteca, como se muestra en el ejemplo.

  • El recuperador debe llamar a una URL en tu servidor para recuperar un token. Esta URL, la SERVER_TOKEN_URL, depende de la implementación de tu backend. La siguiente URL de ejemplo es para el backend de la app de ejemplo en GitHub:

    • https://SERVER_URL/token/consumer/TRIPID

Ejemplo: Crea un recuperador de tokens de autenticación

En los siguientes ejemplos, se muestra cómo crear un recuperador de tokens de autorización:

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

¿Qué sigue?

Sigue un viaje en JavaScript