У меня есть приложение, которое не содержит времени ожидания сеанса, мы не хотим, чтобы наши пользователи входили в систему каждый раз, когда заходят на сайт, или даже если они простаивают. Недавно мы заключили партнерское соглашение с внешним поставщиком, чтобы предоставить некоторые исследовательские данные, которые мы отображаем в 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 работают на разных серверах приложений), он все еще отправляет пользователей на экран входа в систему поставщика, и, если я просто нажму кнопку обновить, я снова войду в систему без предоставления учетных данных.
Пара вопросов:
- Есть ли другой способ справиться с этой проблемой?
- Есть идеи, почему это будет работать локально, а не в разных доменах?