Configurar o SDK JavaScript Consumer

Com o SDK JavaScript para consumidores, seu app para o consumidor pode mostrar o local veículos e outros locais de interesse rastreados no Fleet Engine em uma página da Web mapa. Isso permite que os usuários consumidores vejam 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 Mecanismo de frota para mais detalhes.

Para configurar o SDK de consumidor JavaScript, siga estas etapas:

  1. Ative a API Maps JavaScript.
  2. Configure 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

O Fleet Engine exige o uso de JSON Web Tokens (JWTs) assinados por uma a conta de serviço apropriada para chamadas de método de API de objetos de baixa confiança ambientes. Ambientes de baixa confiança incluem smartphones e navegadores. Um JWT tem origem no seu servidor, que é um ambiente totalmente confiável. O JWT é assinado, criptografado e passado ao cliente para o próximo servidor interações até que expirem ou não sejam mais válidas.

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

Seu app para o consumidor deve autenticar seus usuários finais com a Papel delivery_consumer do seu 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 localização é compartilhada com um usuário final. Consulte Conta de serviço papéis para tarefas programadas.

Como funciona a autorização?

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

Autorização do lado do servidor

Antes de configurar a autorização em seu aplicativo baseado na Web, seu back-end servidor deve ser capaz de exibir JSON Web Tokens. Dessa forma, o Fleet Engine reconhece as solicitações provenientes do seu aplicativo como autorizadas a acessar os dados da solicitação. Para instruções sobre a implementação do JWT no servidor, consulte Emita Tokens JSON Web nos Fundamentos do mecanismo de frota.

Especificamente, lembre-se do seguinte para o SDK de 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 é feito quando uma das seguintes condições é verdadeira:

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

  • O token expirou.

  • O token está dentro de um minuto após expirar.

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

Criar um coletor de tokens de autorização

Crie seu coletor de tokens de autorização seguindo estas diretrizes:

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

    • Uma string token.

    • Um número expiresInSeconds. Um token expira neste período após a busca. O coletor de tokens de autenticação precisa passar o período em segundos, a partir do momento da busca até a biblioteca, como mostrado no o exemplo.

  • O coletor 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 token 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