Версия:

Встраиваемый на маркетплейс виджет (кнопка)

Версия виджет для маркетплейса, подразумевает работу через распределительный сервер, задача которого по merchant_id определить к какому инстанс подключаться.

Распределительный сервер будет располагаться по адресу gway.voda-sale.ru

Получив информацию об инстансе, например vdsl.clarins.ru инициируется загрузка ресурсов виджета и первичная инициализация.

Виджет не использует iframe, а является html и js кодом встраиваемым в код целевой страницы.

В ходе работы скрипта он дополнительно загружает стили и скрипты используя fetch (все загрузки с сервера Voda с определенного инстанса).

После загрузки ресурсов устанавливается подключение по WebSocket.

Кроме этого виджет предполагает воспроизведение видео (превью консультанта), и непосредственно работу WebRTC.

Политики CSP, которые необходимо ослабить для работы виджета:

Для корректной работы виджета с распределительным сервером gway.voda-sale.ru необходимо разрешить взаимодействие с этим доменом в дополнение к конкретным инстансам (например, vdsl.clarins.ru):

Для корректной работы виджета (включая функции воспроизведения видео и установления WebRTC-соединений) в заголовке Content-Security-Policy или метатеге целевой страницы необходимо настроить следующие директивы (на примере инстанса vdsl.clarins.ru):

Пример готовой строки CSP для интеграции (с учетом gway.voda-sale.ru):

Content-Security-Policy: script-src ‘self’ https://vdsl.clarins.ru; style-src ‘self’ https://vdsl.clarins.ru ‘unsafe-inline’; connect-src ‘self’ https://gway.voda-sale.ru https://vdsl.clarins.ru wss://vdsl.clarins.ru; img-src ‘self’ https://vdsl.clarins.ru; media-src ‘self’ https://vdsl.clarins.ru blob:; worker-src ‘self’ blob:;