Configurar o SDK JavaScript Consumer

Com o SDK do consumidor JavaScript, seu app pode mostrar a localização de veículos e outros locais de interesse rastreados no Fleet Engine em um mapa baseado na Web. Isso permite que os usuários consumidores acompanhem o andamento dos envios. Este guia pressupõe que você tenha configurado o Fleet Engine com o projeto e as chaves de API associadas do Google Cloud. Consulte Fleet Engine para mais detalhes.

Configure o SDK do consumidor JavaScript seguindo estas etapas:

  1. Ative a API Maps JavaScript.
  2. Configurar a autorização.

Ativar a API Maps JavaScript

Ative a API Maps JavaScript no projeto do console do Google Cloud que você usa para a instância do Fleet Engine. Para mais detalhes, consulte Ativar APIs na documentação da API Maps JavaScript.

configurar a autorização

Para chamadas de método de API de ambientes de baixa confiança, o Fleet Engine exige o uso de JSON Web Tokens (JWTs) assinados por uma conta de serviço adequada. Os ambientes de baixa confiança incluem smartphones e navegadores. Um JWT é originado no servidor, que é um ambiente totalmente confiável. O JWT é assinado, criptografado e transmitido ao cliente para interações posteriores do servidor até expirar ou deixar de ser válido.

O back-end precisa autenticar e autorizar o Fleet Engine usando mecanismos padrão de credenciais padrão do aplicativo. Use JWTs assinados por uma conta de serviço adequada. Para uma lista de papéis de conta de serviço, consulte os papéis de conta de serviço do Fleet Engine em Noções básicas do Fleet Engine.

O app do consumidor precisa autenticar os usuários finais com o papel delivery_consumer do projeto do Google Cloud para retornar apenas informações específicas do consumidor. Dessa forma, o Fleet Engine filtra e oculta todas as outras informações nas respostas. Por exemplo, durante uma tarefa de indisponibilidade, nenhuma informação de local é compartilhada com o usuário final. Consulte Funções de conta de serviço para tarefas programadas.

Por outro lado, o back-end precisa autenticar e autorizar o Fleet Engine usando mecanismos padrão de credenciais padrão do aplicativo.

Como funciona a autorização?

A autorização com dados do Fleet Engine envolve a implementação do lado do servidor e do lado do cliente.

Autorização do lado do servidor

Antes de configurar a autenticação e a autorização no seu aplicativo baseado na Web, o servidor de back-end precisa emitir tokens da Web do JSON para o aplicativo baseado na Web para ter acesso ao Fleet Engine. Seu aplicativo baseado na Web envia esses JWTs com as solicitações para que o Fleet Engine reconheça as solicitações como autenticadas e autorizadas a acessar os dados na solicitação. Para instruções sobre a implementação de JWTs no servidor, consulte Emitir tokens JSON da Web em Noções básicas do Fleet Engine.

Especificamente, lembre-se do seguinte para o SDK do consumidor JavaScript para rastrear remessas:

Autorização do lado do cliente

Quando você usa o SDK do consumidor JavaScript, ele solicita um token do servidor usando um buscador de tokens de autorização. Isso acontece quando uma das seguintes condições é verdadeira:

  • Nenhum token válido existe, como quando o SDK não chamou o coletor em uma nova carga de página ou quando o coletor não retornou com um token.

  • O token expirou.

  • O token está prestes a expirar em um minuto.

Caso contrário, o SDK do consumidor JavaScript vai usar o token válido emitido anteriormente e não vai chamar o fetcher.

Criar um extrator de token de autorização

Crie o extrator de tokens de autorização usando estas diretrizes:

  • O fetcher precisa retornar uma estrutura de dados com dois campos, envolvidos em um Promise da seguinte maneira:

    • Uma string token.

    • Um número expiresInSeconds. Um token expira após esse período após a busca. O coletor 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 fetcher precisa chamar um URL no seu servidor para recuperar um token. Esse URL, SERVER_TOKEN_URL, depende da implementação do back-end. O URL de exemplo a seguir é para o back-end do app de exemplo no GitHub:

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

Exemplo: criar um coletor de tokens de autenticação

Os exemplos a seguir mostram como criar um coletor 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,
  };
}

A seguir