Etherpad-lite: переносить sessionID из одного домена в другой

Созданный на 19 июн. 2020  ·  6Комментарии  ·  Источник: ether/etherpad-lite

Всем привет! Любые идеи о том, как я могу передать идентификатор сеанса из одного домена в другой и записать его в файл cookie клиента?

домен номер 1 - общий сайт
домен номер 2 - etherpad

Есть плагин ep_auth_session , но он не работает в моем случае (_У вас нет разрешения на доступ к этой панели_), поскольку я использую следующие настройки:

{
  "ip": "127.0.0.1",
  "trustProxy": true,
  "requireSession": true
}

плюс proxy_pass

Question

Все 6 Комментарий

Я предполагаю, что какая-то логика на сайте заключается в том, что при первоначальном создании сеанса он отправляет идентификатор сеанса в etherpad. Потребуется плагин в Etherpad.

@JohnMcLear из домена номер 1, мы не можем установить файлы cookie в домене номер 2

файлы cookie должны быть установлены непосредственно на домене номер 2

есть такой плагин или его нужно доработать?

Его нужно будет развивать. Посмотрите, как я устанавливаю файлы cookie в ep_what_have_i_missed

Его нужно будет развивать. Посмотрите, как я устанавливаю файлы cookie в ep_what_have_i_missed

https://github.com/ether/ep_what_have_i_missed 404 не найдено

Я тоже человек ....: P

https://github.com/JohnMcLear/ep_what_have_i_missed

У нас есть что-то подобное. В нашем случае у нас есть главная страница, которая представляет собой iframe, который является оболочкой для редактора Etherpad.
Не знаю, ваш случай, если да, эти отрывки могут помочь.

Отправить сообщение через PostMessage из оболочки

Window.postMessage(message, '*')

Слушайте вызовы API извне (плагин Etherpad)

var _listenToAPICallsToSetSessionOnCookie = function() {
  // listen to outbound calls of this API
  window.addEventListener('message', function(e) {
      ... check the content of 'e'
      setSessionOnCookie(e.data.sessionID, e.data.expires)
    }
  });
}

Добавьте идентификатор сеанса (плагин Etherpad)

var setSessionOnCookie = function(sessionID, expires) {
  var existingSessionIDs = getSessionID(); // get existent sessions id
  var sessionIDAlreadyStored = existingSessionIDs.indexOf(sessionID) !== -1;

  if (!sessionIDAlreadyStored) {
    // need to append new session id to the end of existing list
    var allSessionIDs = existingSessionIDs.length ? existingSessionIDs + ',' : '';
    allSessionIDs += sessionID;

    // include expiration, if provided
    var expiration = expires ? ';expires=' + (new Date(expires).toUTCString()) : '';

    document.cookie = 'sessionID=' + allSessionIDs + expiration + ';secure';
  }
}

Подробнее о postMessage API
https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage

Была ли эта страница полезной?
0 / 5 - 0 рейтинги