С помощью JavaScript Consumer SDK ваше потребительское приложение может отображать местоположение транспортных средств и других важных объектов, отслеживаемых в Fleet Engine, на веб-карте. Это позволяет вашим пользователям отслеживать ход доставки. В этом руководстве предполагается, что вы уже настроили Fleet Engine с соответствующим проектом Google Cloud и ключами API. Подробности см. в разделе Fleet Engine .
Для настройки JavaScript Consumer SDK необходимо выполнить следующие шаги:
Включите JavaScript API для работы с картами.
Включите JavaScript API для работы с картами в проекте Google Cloud Console, который вы используете для своего экземпляра Fleet Engine. Дополнительные сведения см. в разделе «Включение API» в документации по JavaScript API для работы с картами.
Настройка авторизации
Для вызова методов API из сред с низким уровнем доверия (смартфонов и браузеров) Fleet Engine требует использования JSON Web Tokens (JWT).
JWT-токен создается на вашем сервере, подписывается, шифруется и передается клиенту для последующих взаимодействий с сервером до тех пор, пока не истечет срок его действия или он не перестанет быть действительным.
Ключевые детали
- Используйте учетные данные приложения по умолчанию для аутентификации и авторизации в Fleet Engine.
- Для подписи JWT используйте соответствующую учетную запись службы. См. раздел «Роли учетных записей служб Fleet Engine» в руководстве «Основы работы с Fleet Engine» .
delivery_consumer из вашего проекта Google Cloud, чтобы возвращать только информацию, относящуюся к конкретному потребителю. Таким образом, Fleet Engine фильтрует и удаляет всю остальную информацию из ответов. Например, во время задачи, связанной с недоступностью, информация о местоположении не передается конечному пользователю. См. Роли учетных записей служб для запланированных задач.Как работает авторизация?
Авторизация с использованием данных Fleet Engine включает в себя реализацию как на стороне сервера, так и на стороне клиента.
Авторизация на стороне сервера
Прежде чем настраивать аутентификацию и авторизацию в вашем веб-приложении, ваш бэкэнд-сервер должен иметь возможность выдавать JSON Web Tokens вашему веб-приложению для доступа к Fleet Engine. Ваше веб-приложение отправляет эти JWT вместе со своими запросами, чтобы Fleet Engine распознавал запросы как аутентифицированные и авторизованные для доступа к данным в запросе. Инструкции по реализации JWT на стороне сервера см. в разделе «Выдача JSON Web Tokens» в руководстве Fleet Engine Essentials .
В частности, при использовании 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/delivery_consumer/TRACKING_ID
-
Пример - Создание средства получения токенов аутентификации
В следующих примерах показано, как создать средство получения авторизационных токенов:
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,
};
}