В нашем приложении Rails пользователи часто держат открытыми несколько вкладок браузера в течение нескольких часов или дней. Проблема возникает, когда на одной из этих вкладок пользователь выходит из системы, а затем снова входит в нее (или срок действия сеанса истекает и создается новый сеанс).
Это приводит к тому, что токены аутентификации CSRF на всех других вкладках становятся недействительными. Если они попытаются отправить любую форму или сделать какой-либо ajax-запрос на этих вкладках без обновления, они получат сообщение об ошибке (и фактически выйдут из системы, потому что это поведение Rails по умолчанию, когда передается неверный токен аутентификации).
Такое поведение явно нежелательно. Мне было интересно, что люди делают, чтобы изящно справляться с ситуациями, когда у пользователя открыто окно на ваш сайт, но токен подлинности устарел.
Чего я не хочу делать, так это просто перенаправлять их на страницу входа, потому что тогда они могут потерять свою работу, если, например, они написали длинный пост в блоге или что-то в этом роде.
Решение, которое приходит на ум, состоит в том, чтобы иметь некоторый javascript, который либо опрашивает сервер, чтобы проверить, изменился ли токен аутентификации, либо опрашивает файлы cookie пользователя, чтобы проверить, изменился ли сеанс. Я никогда не слышал, чтобы кто-то делал что-либо из этого, поэтому я хотел узнать, что думает сообщество.