2010-03-31 3 views
0

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

+0

Как выйти из системы зависит от того, как вы входите в систему. Вы также должны были уточнить логин. – BalusC

ответ

0

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

2

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

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

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

<session-config> 
     <session-timeout>20</session-timeout> 
</session-config> 
0

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

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

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