SmartApp c проксированием
В данной статье рассматривается, что такое SmartApp c проксированием, его разработка, а также принцип проксирования.
Описание
SmartApp c проксированием представляет собой клиент-серверную архитектуру. На клиенте выполняется frontend, в качестве backend выступает чат-бот:
Принцип проксирования
В отличие от других видов SmartApp в обмене данными присутствует дополнительное взаимодействие — проксирование веб-ресурса. Роль прокси на CTS-сервере выполняет микросервис smartapp_proxy.
Принцип проксирования заключается в следующем:
-
Для проксируемого ресурса выделяется субдомен CTS.
Например, CTS-сервер паркуется на cts01.example.com, субдоменом для него может быть booking.cts01.example.com. Такое "подчиненное" отношение между FQDN требуется для корректной работы авторизационной cookie;
-
"eXpress" клиент при запуске SmartApp стартует сессию в CTS со сроком жизни 24ч. В ответ на запрос CTS возвращает авторизационную cookie
_file_service_key
; -
В CTS запущен микросервис smartapp_proxy, через который передаются все запросы субдомена booking.cts01.example.com. Его роль состоит в проверке авторизационного cookie. Если cookie валидный, запрос пропускается до ресурса внутрь КСПД, ответ возвращается клиенту.
Разработка
-
Необходимо разработать SmartApp frontend, который реализует:
-
получение авторизационной информации от SmartApp backend;
-
открытие iFrame с проксируемым веб-ресурсом.
Пример iframe:
<iframe src="https://booking.cts01.example.com?token=671098d2-cd90-4c8a-905d-f02b214a18ab" class="web-resource" />
-
-
Необходимо разработать SmartApp backend (чат-бота), который реализует:
-
авторизацию в интегрируемом веб-ресурсе (см. инструкцию "Аутентификация в интегрируемых сервисах");
-
отправку push-уведомлений клиенту, если это необходимо.
-
-
Настройте сборки frontend и backend в один контейнер и публикацию (см. инструкцию "Публикация SmartApp с проксированием").