С помощью JavaScript Consumer SDK ваше приложение для потребителей может отображать местоположение транспортных средств и других объектов, отслеживаемых Fleet Engine, на веб-карте. Это позволяет вашим потребителям отслеживать ход поездки водителя. Данное руководство предполагает, что вы уже настроили Fleet Engine, используя связанный проект Google Cloud и ключи API. Подробнее см. в разделе Fleet Engine .
Настройка JavaScript Consumer SDK выполняется следующим образом:
Включить API JavaScript Карт
Включите Maps JavaScript API в Google Cloud Console. Подробнее см. в разделе «Включение API» в документации Google Cloud. Это активирует Consumer SDK для JavaScript.
Настроить авторизацию
Fleet Engine требует использования JSON Web Tokens (JWT) для вызовов методов API из сред с низким уровнем доверия : смартфонов и браузеров.
JWT создается на вашем сервере, подписывается, шифруется и передается клиенту для последующих взаимодействий с сервером до тех пор, пока не истечет срок его действия или он не станет недействительным.
Ключевые детали
- Используйте учетные данные приложения по умолчанию для аутентификации и авторизации в Fleet Engine.
 - Используйте соответствующую учетную запись службы для подписи JWT. См. роли учетных записей службы Fleet Engine в разделе Основы Fleet Engine .
 
Как работает авторизация?
Авторизация с использованием данных Fleet Engine подразумевает реализацию как на стороне сервера, так и на стороне клиента.
Авторизация на стороне сервера
Прежде чем настраивать аутентификацию и авторизацию в веб-приложении, ваш бэкенд-сервер должен иметь возможность выдавать веб-токены JSON для доступа к Fleet Engine. Веб-приложение отправляет эти JWT вместе со своими запросами, чтобы Fleet Engine распознавал запросы как аутентифицированные и авторизованные для доступа к данным в запросе. Инструкции по реализации JWT на стороне сервера см. в разделе «Выдача JSON веб-токенов» в разделе «Основы Fleet Engine» .
В частности, при использовании JavaScript Consumer SDK для обмена информацией о ходе поездки следует учитывать следующее:- Общие рекомендации по выпуску JSON Web Tokens
 - Правила JWT для поездок по требованию
 - Пример токена для потребительской операции
 
Авторизация на стороне клиента
При использовании JavaScript Consumer SDK он запрашивает токен с сервера, используя сборщик токенов авторизации. Это происходит, когда выполняется любое из следующих условий:
Действительный токен отсутствует, например, если SDK не вызвал сборщик при загрузке новой страницы или если сборщик не вернулся с токеном.
Срок действия токена истек.
Срок действия токена истекает через одну минуту.
В противном случае JavaScript Consumer SDK использует ранее выданный действительный токен и не вызывает сборщик.
Создать сборщик токенов авторизации
Создайте свой сборщик токенов авторизации, следуя этим рекомендациям:
Сборщик должен возвращать структуру данных с двумя полями , заключенную в
Promiseследующим образом:Строковый
token.Число
expiresInSeconds. Срок действия токена истекает через указанное время после получения. Сборщик токена аутентификации должен передать библиотеке время истечения срока действия в секундах с момента получения, как показано в примере.
Сборщик должен обратиться к URL-адресу на вашем сервере для получения токена. Этот URL —
SERVER_TOKEN_URL— зависит от реализации вашего бэкенда. Следующий пример URL-адреса относится к бэкенду примера приложения на GitHub :-  
https://SERVER_URL/token/consumer/TRIPID 
-  
 
Пример. Создание сборщика токенов аутентификации.
В следующих примерах показано, как создать сборщик токенов авторизации:
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
  };
}
Машинопись
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,
  };
}
Что дальше?
Следите за путешествием в JavaScript