Настройка потребительского SDK JavaScript

Выберите платформу: Android iOS JavaScript

С помощью JavaScript Consumer SDK ваше потребительское приложение может отображать местоположение транспортных средств и других объектов, отслеживаемых в Fleet Engine, на веб-карте. Это позволяет вашим пользователям видеть ход поездки водителя. В этом руководстве предполагается, что вы настроили Fleet Engine с соответствующим проектом Google Cloud и ключами API. Подробности см. в разделе Fleet Engine .

Для настройки JavaScript Consumer SDK необходимо выполнить следующие шаги:

  1. Включите JavaScript API для работы с картами.
  2. Настройка авторизации

Включите JavaScript API для работы с картами.

Включите JavaScript API для работы с картами в консоли Google Cloud. Дополнительные сведения см. в разделе «Включение API» в документации Google Cloud. Это активирует SDK для работы с JavaScript.

Настройка авторизации

Для вызова методов API из сред с низким уровнем доверия (смартфонов и браузеров) Fleet Engine требует использования JSON Web Tokens (JWT).

JWT-токен создается на вашем сервере, подписывается, шифруется и передается клиенту для последующих взаимодействий с сервером до тех пор, пока не истечет срок его действия или он не перестанет быть действительным.

Ключевые детали

Как работает авторизация?

Авторизация с использованием данных Fleet Engine включает в себя реализацию как на стороне сервера, так и на стороне клиента.

Авторизация на стороне сервера

Прежде чем настраивать аутентификацию и авторизацию в вашем веб-приложении, ваш бэкэнд-сервер должен иметь возможность выдавать JSON Web Tokens вашему веб-приложению для доступа к Fleet Engine. Ваше веб-приложение отправляет эти JWT вместе со своими запросами, чтобы Fleet Engine распознавал запросы как аутентифицированные и авторизованные для доступа к данным в запросе. Инструкции по реализации JWT на стороне сервера см. в разделе «Выдача JSON Web Tokens» в руководстве Fleet Engine Essentials .

В частности, при использовании JavaScript Consumer SDK для обмена информацией о ходе поездки следует учитывать следующее:

Авторизация на стороне клиента

При использовании 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