Antes de usar la biblioteca de seguimiento de la flota de JavaScript, asegúrate de lo siguiente: y configuraron Fleet Engine. Para obtener más información, consulta Fleet Engine.
En este documento, se muestra cómo habilitar la autorización entre para la app de página web y Fleet Engine. Una vez que tus solicitudes a Fleet Engine se hayan los tokens de autorización correctos, estarás listo para seguir un vehículo en un mapa.
Configura la autorización
Para las llamadas a métodos de API desde entornos de baja confianza, Fleet Engine requiere el uso de tokens web JSON (JWT) firmados por una cuenta de servicio adecuada. Los entornos de baja confianza incluyen smartphones y navegadores. Un JWT Se origina en tu servidor, que es un entorno completamente confiable. El token JWT se firma, se encripta y se pasa al cliente para la posterior interacciones hasta que caduque o deje de ser válida. Para un lista de los roles de la cuenta de servicio; consulta los roles de la cuenta de servicio de Flet Engine en Aspectos básicos de Flet Engine.
Por el contrario, tu backend debe autenticarse y autorizarse con Fleet Engine Usar credenciales predeterminadas de la aplicación estándar con mecanismos de control de acceso clave.
¿Cómo funciona la autorización?
La autorización con datos de Fleet Engine implica la implementación del servidor y del cliente.
Autorización del servidor
Antes de configurar la autorización en la aplicación de seguimiento de la flota, debe poder entregar tokens web JSON. De esta manera, Fleet Engine reconoce las solicitudes que provienen de tu aplicación como autorizadas para acceder los datos de la solicitud. Para obtener instrucciones sobre la implementación de JWT del servidor, consulta Emite tokens web JSON en Nociones básicas del motor de flota.
Para generar tokens desde tu servidor cuando implementes el seguimiento de flotas, consulta el lo siguiente:- Lineamientos generales para emitir tokens web JSON, incluido secciones para viajes a pedido y tareas programadas
- Viajes on demand: Token de ejemplo para una operación de servidor de backend
- Tareas programadas: Token de ejemplo para hacer un seguimiento de todas las tareas y vehículos de la flota
Autorización del cliente
Cuando usas la biblioteca de seguimiento de la flota de JavaScript, esta solicita un token al servidor mediante un recuperador de tokens de autorización. Hace esto cuando se cumple alguna de las siguientes condiciones:
No existe un token válido, como cuando el SDK no llama al recuperador en una nueva carga de página o cuando el recuperador no ha regresado con un token.
El token venció.
El token está en el plazo de un minuto a partir de su vencimiento.
De lo contrario, la biblioteca de seguimiento de la flota de JavaScript usa el token válido y emitido anteriormente no llames al recuperador.
Crea un recuperador de tokens de autorización
Sigue estos lineamientos para crear tu recuperador de tokens de autorización:
El recuperador debe mostrar una estructura de datos con dos campos, dentro de un
Promise
de la siguiente manera:Es una cadena
token
.Un número
expiresInSeconds
. Un token vence en este período después de la recuperación. El recuperador de tokens de autenticación debe pasar la fecha de tiempo 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 de tu servidor para recuperar un token. Esta La URL
SERVER_TOKEN_URL
depende de la implementación de tu backend. El La siguiente URL de ejemplo es para el backend de la app de ejemplo en GitHub:https://SERVER_URL/token/fleet_reader
Ejemplo: crea un recuperador de tokens de autorizació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,
};
}