Реализация функции выхода из системы - PullRequest
0 голосов
/ 31 марта 2010

Я работаю над своим последним проектом, который представляет собой веб-приложение. Я хочу реализовать функцию выхода из системы в этом проекте. Но не знаю, как это сделать. Также я хочу реализовать функцию автоматического выхода из системы, то есть после определенного периода времени, скажем, через 20 минут, пользователь автоматически выйдет из системы, если он / она не выполнит никаких действий в течение этого периода. Пользователь должен отобразить сообщение «Извините, ваша сессия истекла, пожалуйста, войдите снова». Как это сделать?

Ответы [ 3 ]

2 голосов
/ 31 марта 2010

Вы можете выйти из системы, используя session.invalidate() (или response.getSession().invalidate() в сервлете)

При использовании файлов cookie вам необходимо будет позвонить response.addCookie(..) со своим файлом cookie с отрицательным сроком службы.

Автоматический выход может быть достигнут с установкой тайм-аута сеанса. В web.xml

<session-config>
        <session-timeout>20</session-timeout>
</session-config>
0 голосов
/ 31 марта 2010

Способ, которым я делаю это на нашей CMS, заключается в запуске setTimeout при загрузке страницы. Это - через 20 минут перенаправляет пользователя на страницу, которая очищает сеанс и, следовательно, выходит из системы пользователя. К сожалению, это имеет один побочный эффект: когда у пользователя открыто более одного окна, иногда одно окно может достичь периода ожидания до того времени, когда пользователь активен. Это приводит к преждевременному истечению времени ожидания сеанса и прерыванию потока.

Одним из способов обхода этого предостережения может быть сохранение идентификатора активности для каждого действия, которое выполняет пользователь (т.е. создание элемента содержимого, загрузка изображения). Этот идентификатор активности хранится в пользовательской таблице, и таймер тайм-аута (в Javascript) может проверить этот идентификатор, чтобы увидеть, является ли окно, для которого истекло время ожидания, последним активным окном или нет. Если идентификатор в этом окне (переданный, скажем, из переменной PHP в вывод HTML) не совпадает, то он не вызывает тайм-аут сеанса.

Это довольно сложный подход без внесения критических изменений в интерфейс.

0 голосов
/ 31 марта 2010

Как вы справляетесь с логинами и сессиями? Если это так же просто, как файл cookie сеанса, вы просто истекаете / удаляете файл cookie для выхода из системы

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