Перейти к содержанию

SmartApp c проксированием

В данной статье рассматривается, что такое SmartApp c проксированием, его разработка, а также принцип проксирования.

Описание

SmartApp c проксированием представляет собой клиент-серверную архитектуру. На клиенте выполняется frontend, в качестве backend выступает чат-бот:

Рисунок_1

Принцип проксирования

В отличие от других видов SmartApp в обмене данными присутствует дополнительное взаимодействие — проксирование веб-ресурса. Роль прокси на CTS-сервере выполняет микросервис smartapp_proxy.

Принцип проксирования заключается в следующем:

  1. Для проксируемого ресурса выделяется субдомен CTS.

    Например, CTS-сервер паркуется на cts01.example.com, субдоменом для него может быть booking.cts01.example.com. Такое "подчиненное" отношение между FQDN требуется для корректной работы авторизационной cookie;

  2. "eXpress" клиент при запуске SmartApp стартует сессию в CTS со сроком жизни 24ч. В ответ на запрос CTS возвращает авторизационную cookie _file_service_key;

  3. В CTS запущен микросервис smartapp_proxy, через который передаются все запросы субдомена booking.cts01.example.com. Его роль состоит в проверке авторизационного cookie. Если cookie валидный, запрос пропускается до ресурса внутрь КСПД, ответ возвращается клиенту.

Разработка

  1. Необходимо разработать SmartApp frontend, который реализует:

    • получение авторизационной информации от SmartApp backend;

    • открытие iFrame с проксируемым веб-ресурсом.

      Пример iframe:

          <iframe src="https://booking.cts01.example.com?token=671098d2-cd90-4c8a-905d-f02b214a18ab" class="web-resource" />
      
  2. Необходимо разработать SmartApp backend (чат-бота), который реализует:

  3. Настройте сборки frontend и backend в один контейнер и публикацию (см. инструкцию "Публикация SmartApp с проксированием").