Antes de usar a biblioteca JavaScript de rastreamento de frota, confira se você conhece e configurou o Fleet Engine. Para mais detalhes, consulte Fleet Engine.
Este documento mostra como ativar a autorização entre o app de página da Web e o Fleet Engine. Depois que as solicitações ao Fleet Engine forem configuradas com os tokens de autorização corretos, você poderá rastrear um veículo em um mapa.
Configurar a autorização
O Fleet Engine exige o uso de JSON Web Tokens (JWTs) para chamadas de método da API de ambientes de baixa confiança: smartphones e navegadores.
Um JWT é originado no seu servidor, assinado, criptografado e transmitido ao cliente para interações subsequentes com o servidor até expirar ou não ser mais válido.
Detalhes importantes
- Use as credenciais padrão do aplicativo para autenticar e autorizar no Fleet Engine.
- Use uma conta de serviço adequada para assinar JWTs. Consulte os papéis da conta de serviço do Fleet Engine em Fundamentos do Fleet Engine.
Como funciona a autorização?
A autorização com dados do Fleet Engine envolve a implementação do lado do servidor e do cliente.
Autorização do lado do servidor
Antes de configurar a autenticação e a autorização no aplicativo de rastreamento de frota, o servidor de back-end precisa emitir tokens da Web JSON para o aplicativo de rastreamento de frota para acesso ao Fleet Engine. O aplicativo de rastreamento de frota envia esses JWTs com as solicitações para que o Fleet Engine as reconheça como autenticadas e autorizadas a acessar os dados na solicitação. Para instruções sobre a implementação de JWTs do lado do servidor, consulte Emitir tokens da Web JSON em Fundamentos do Fleet Engine.
Para gerar tokens do seu servidor ao implementar o rastreamento de frota, consulte o seguinte:- Diretrizes gerais para emissão de JSON Web Tokens, incluindo seções para viagens sob demanda e tarefas programadas
- Viagens sob demanda: Exemplo de token para uma operação de servidor de back-end
- Tarefas programadas: exemplo de token para rastrear todas as tarefas e veículos da frota
Autorização do lado do cliente
Ao usar a biblioteca JavaScript de rastreamento de frota, ela solicita um token do servidor usando um buscador de tokens de autorização. Isso acontece quando uma das seguintes condições é verdadeira:
- Não há um token válido, como quando o SDK não chamou o buscador em um carregamento de página novo ou quando o buscador não retornou com um token. 
- O token expirou. 
- O token está a um minuto de expirar. 
Caso contrário, a biblioteca de rastreamento de frota em JavaScript usa o token válido emitido anteriormente e não chama o buscador.
Criar um buscador de tokens de autorização
Crie seu buscador de tokens de autorização usando estas diretrizes:
- O buscador precisa retornar uma estrutura de dados com dois campos, envolvida em um - Promiseda seguinte forma:- Uma string - token.
- Um número - expiresInSeconds. Um token expira após esse período depois de ser buscado. O buscador de tokens de autenticação precisa transmitir o tempo de expiração em segundos, desde o momento da busca até a biblioteca, conforme mostrado no exemplo.
 
- O buscador precisa chamar um URL no seu servidor para recuperar um token. Esse URL, o - SERVER_TOKEN_URL, depende da implementação do back-end. O URL de exemplo a seguir é para o backend do app de exemplo no GitHub:- https://SERVER_URL/token/fleet_reader
 
Exemplo: criar um buscador de tokens de autorização
Os exemplos a seguir mostram como criar um buscador de tokens de autorização:
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,
  };
}