Ограниченный доступ к веб-виджету

У меня есть веб-сайт с большой базой для узкой категории данных (таких как астрономия). Клиенты заинтересованы в моем контенте, и они хотят, чтобы я дал им готовые блоки (виджеты) для вставки на их сайт. API для них сложен, им нужны только готовые блоки с конкретной информацией.

Мой вопрос: Можно ли отображать виджеты только на сайтах моих клиентов и как это технически реализовать? И если какой-то неизвестный мудрец скопировал код виджета на свой сайт, он не мог увидеть содержимое виджета.

Я понимаю, что HTTP_REFERER не подходит, потому что его легко подделать. А какие технологии? Я слышал о программных токенах и возможности подписывать запросы, но не знаю, подходят ли они для моей ситуации и как это практически реализовать. Пожалуйста предложите?

Если я начну работать со своими клиентами, то включу их в свою базу данных и смогу там хранить любую информацию, связанную с ними

1 ответ

  1. Я выполнил задачу благодаря HTTP access control (CORS). Widget controller управляет внешними запросами через настройки базы данных:

    • идентификатор заказчика
    • Предел диапазона дат клиента
    • Домены клиентов, которые использовались для заголовка «Access-Control-Allow-Origin»

    Таким образом, неизвестный клиент не мог отобразить мои виджеты на своем веб-сайте, даже если они скопировали код виджета.

    Содержимое виджета динамически загружается в iframe клиента из внешнего JS через ajax-запрос. Это обеспечивает асинхронную загрузку данных на веб-сайт клиента и позволяет загружать содержимое виджета только авторизованному клиенту с известными доменами