Надежный выход на вкладку / закрытие окон - PullRequest
0 голосов
/ 07 марта 2019

Я реализую управление сессиями в приложении Spring boot + AngularJS.Spring обрабатывает сеанс - он основан на файлах cookie.

Как я могу надежно сообщить приложению Spring, что пользователь закрыл окно браузера (отправляет /logout на сервер и удаляет информацию о сеансе из браузера), а не когдастраница обновляется?Я пробовал с событием onbeforeunload, хотя оно срабатывает и перед обновлением страницы.Также я попытался с несколькими опциями, которые проверяют состояние события (e.clientX, e.clientY, event || window.event) - нет разницы между закрытием и обновлением в моем случае (в последнем Chrome).Я пытался использовать sessionStorage, но я не уверен, хочу ли я основывать свою безопасность на HTML5 - кто-то может использовать более старый браузер.

На данный момент я реализовал решение, которое отправляет запрос /session каждые 5 секунд.(он отправляет в любом случае, чтобы проверить, не истек ли сеанс), и в приложении Spring я сохраняю время.Если интервал между /session вызовами превышает 7 секунд - сеанс становится недействительным и пользователю необходимо снова войти в систему.В обычном сценарии он работает нормально, хотя я могу себе представить, что он выйдет из системы, когда в сети будут какие-то задержки.Есть ли надежное кросс-браузерное решение?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...