Виджет Iframe на веб-сайте клиентов и аутентификация для API

Я создаю приложение, в котором пользователи могут получить строку javascript, которую они могут встроить на свой сайт, чтобы загрузить виджет и сделать определенную информацию доступной для посетителей сайта и разрешить взаимодействие с конечными пользователями.

Виджет представляет собой javascript, который загружается в iframe со страницы, размещенной на моем сервере. Эта страница является интерфейсом react, который взаимодействует с моей серверной частью .NET через API. В url я получаю идентификатор пользователя, чтобы знать, какой виджет загружать. www.example.com/widget/userid

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

Какие рекомендации по проверке подлинности для API-интерфейсов, с которыми может работать страница, даже если она загружена в iframe на веб-сайтах моих пользователей и не требует входа посетителей веб-сайта моих пользователей?

1 ответ

  1. Если я правильно понял ваш вопрос, вы должны использовать postmessage.
    На стороне отправителя:

    parent.postMessage({ type: 'something',more data...}, '*')
    

    и после этого на стороне приемника вы можете сделать:

    window.addEventListener('message', function (event) {
      switch (event.data.type) {
          case 'something':
          // Do something
          break;
      }
    }
    

    Таким образом, вы можете заставить iFrame взаимодействовать с другим элементом JS.

    Надеюсь это кое-как поможет.