В нашем веб-приложении JAVA мы поддерживаем сеанс пользователей в таблице базы данных active_sessions
. И мы не разрешаем несколько сеансов для каждого пользователя. что это означает, если вы уже вошли в систему с определенной учетной записью пользователя, вы не можете открыть новый сеанс с той же учетной записью. В случае, если кто-то это делает, мы выводим сообщение об ошибке «Пользователь уже имеет активный сеанс». Когда пользователь нажимает на Logout
, его запись из таблицы active_sessions
удаляется. Но в случае, если пользователь закрывает окно без выхода из системы, его запись остается в таблице active_sessions
. Поэтому любая попытка входа в систему в будущем приводит к ошибке «Пользователь уже имеет активный сеанс». Любые советы о том, как уничтожить сеанс пользователя в базе данных, если он закрывает окно браузера без выхода из системы.Уничтожить сеанс пользователя, хранящийся в базе данных при закрытии окна
Редактировать: После прочтения всех сообщений, похоже, нет чистого способа ограничить один сеанс на пользователя.
Это так опасно! – SMA
Согласен с @almasshaikh. Сессии должны автоматически закрываться по истечении тайм-аута (независимо от того, как пользователь выходит из webapp). Если пользователь не был активным в течение определенного периода времени, убейте их сеанс. Это позволит пользователю снова войти в систему. EDIT: альтернативный метод, следующая попытка входа автоматически аннулирует первый сеанс, носящий этот сеанс. – Dave
Что случилось с несколькими одновременными сеансами? Это ограничение вашего дизайна веб-приложений или проблема лицензирования/права? Я лично ненавижу любое веб-приложение, которое ограничивает мою свободу. –