У меня есть приложение, в котором нет времени ожидания сеанса, мы не хотим, чтобы нашим пользователям приходилось входить в систему каждый раз, когда они заходят на сайт, или даже если они бездействовали. Недавно мы сотрудничали с внешним поставщиком, чтобы предоставить некоторые исследовательские данные, которые мы визуализируем в i-frame. У поставщика есть 30-минутный сеанс, после того как этот сеанс истечет в iframe, пользователям будет предложено повторно войти на сайт поставщика. Как я уже говорил ранее, мы не хотим, чтобы конечный пользователь входил в систему несколько раз.
Решение, которое я придумал, заключалось в том, что когда сеанс конечных пользователей истечет в iframe, будет вызов javascript:
/if called from an iframe, refresh the containing window
if (self != top) {
window.parent.location.href = window.parent.location.href;
}
Я проверил это локально, и это работает, т.е. и родительский элемент, и iframe работали на одном сервере приложений, однако, когда он развернут на 2 разных доменах (родительское окно и i-frame работают на разных серверах приложений), он все еще отправляет пользователей на экран входа в систему поставщика, и если я просто нажму кнопку «Обновить», я успешно повторно войду в систему без необходимости предоставлять учетные данные.
Пара вопросов:
- Кто-нибудь может придумать другой способ справиться с этой проблемой?
- Любая идея, почему это будет работать локально, но не в разных доменах?