Общение с двумя провайдерами в одном домене

Я пытаюсь внедрить easyXDM в наш текущий проект, чтобы пользователи могли работать с несколькими системами в течение одного рабочего процесса с доступом из одного интерфейса. Другими словами, когда пользователь открывает страницу X, приложение из другого домена должно быть загружено в iframe, чтобы пользователь мог работать с ним (пользователь должен сначала пройти аутентификацию).

Само задание требует, чтобы определенная часть приложения была открыта в зависимости от некоторых условий (допустим, что для пользователя из отдела A мы должны открыть форму Af в указанном приложении).

Вот логика, которую я пытаюсь здесь кодировать:

  1. Пользователь открывает страницу X (Потребитель)
  2. Iframe со страницей входа приложения (Provider1) загружается в iframe на Consumer
  3. Пользователь входит в приложение
  4. JS на Потребителе получает заголовки от Провайдера1
  5. JS на Потребителе загружает Provider2 с полученными ранее заголовками и сообщает Provider2, чтобы перейти к определенной форме
  6. JS внутри Provider2 получает сообщение от потребителя и переходит к определенной форме внутри этого приложения.

Вот что я получил на данный момент (довольно простой пример из readme easyXDM):

поставщик

    var socket = new easyXDM.Socket({
        onMessage: function(message, origin){
            // do something
        }
    });

потребитель

var socket = new easyXDM.Socket({
    remote: "http://remote/page",
    container: "test",
    onMessage: function(message, origin){
        alert("Received '" + message + "' from '" + origin + "'");
        var socket1 = new easyXDM.Socket({
            remote: "http://remote/page2",
            container: "test",
            headers: providers2_headers,
            onMessage: function(message, origin){
                alert("Received '" + message + "' from '" + origin + "'");            
            },
            onReady: function() {
                this.container.getElementsByTagName("iframe")[0].style.width = "100%";
                socket1.postMessage("Yay, it works!");
            }
        });
    },
    onReady: function() {
    this.container.getElementsByTagName("iframe")[0].style.width = "100%";
        socket.postMessage("Yay, it works!");
    }
});

Вопрос

Как получить заголовки от Provider1 и использовать их для загрузки Provider2?

0 ответов

Другие вопросы по тегам