Протухание сессии

  • Автор темы HITMAN-NN
  • Дата начала
H

HITMAN-NN

#1
Народ у мя такая задача: есть логин форма, пользователь аутинтифицируется, дальше работает на страничке. А по истечении сессии пользователя, должен происходить редирект на логин форму автоматически. Так вот задача: как лучше определить: что время сессии истекло и как сделать редирект на логин форму?
 

ToxaRat

Чёрный маг
Lotus team
06.11.2007
3 231
17
#2
HITMAN-NN
ну время сессии истекло задается в настройках серверного документа
Idle session timeout: 30 minutes
а редирект по идеи создать портал
 
H

HITMAN-NN

#3
кроме запуска счетчика например на 20 мин у мя не приходит мыслей.... может можно сделать как-нито красиво, там например вытащить сколько осталось до конца сессии
 

ToxaRat

Чёрный маг
Lotus team
06.11.2007
3 231
17
#4
помню делал сам определение сесии
заключалось в том что в урл добавлялось что-то типа SES=UNID
где UNID это унид дока в котором я прописавал что за пользователь логонился и все его данные, потом при заходе на другую страницу я обновлял этот док, тем самым четко знал сколько времени прошло с прошлого раза и при желании спокойно ставил скриптовый таймер
 
H

HITMAN-NN

#5
ну дык, а как вытащить сколько стоит таймаут на сервере? И можно пример кода?
 

ToxaRat

Чёрный маг
Lotus team
06.11.2007
3 231
17
#6
HITMAN-NN
а что вытаскивать то?
часть кода на страничке делаешь динамическим
 

Akupaka

А че я?.. О.о
04.10.2007
3 360
1
#7
помню делал сам определение сесии
заключалось в том что в урл добавлялось что-то типа SES=UNID
где UNID это унид дока в котором я прописавал что за пользователь логонился и все его данные, потом при заходе на другую страницу я обновлял этот док, тем самым четко знал сколько времени прошло с прошлого раза и при желании спокойно ставил скриптовый таймер
и что дает знание сколько прошло времени с прошлого обращения к сервверу?
если пользователь зашел в 12-00 на сервер, аутентифицировался. Простой сессии пусть указан в 30 мин. Потом пользователь через 35 мин заходит на сервер и получает страницу аутентификации! И шо?

а что вытаскивать то?
часть кода на страничке делаешь динамическим
Опять таки, что делать динамическим и, что это дает? Делать обращение к серверу автоматически? Тогда таймер сессии на сервере будет обнуляться постоянно!

В общем, давайте подумаем, что нам надо:
есть логин форма, пользователь аутинтифицируется, дальше работает на страничке. А по истечении сессии пользователя, должен происходить редирект на логин форму автоматически. Так вот задача: как лучше определить: что время сессии истекло и как сделать редирект на логин форму?
во-первых, если время сессии на сервере истекло, то сервер автоматически направит пользователя на страницу аутентификации при следующем обращении к серверу. не понимаю, чем это не устраивает.
если же, все-таки, не устраивает, то могу предложить такие варианты.
при открытии страницы с сервера, в кукис можно записывать время обращения к серверу. при этом на странице можно поместить код, который будет через какой-то период времени:
1) опрашивать значение этих кукис, и, в случае, если предполагаемое время сессии истекло, перенаправлять страницу на какой-то требуемый урл, что приведет к запросу аутентификации, либо использовать команду входа ?Login.
2) (кукисы не обязательно писать) через какое-то определенное время, которое меньше предполагаемого времени сессии, обращаться к серверу, чтобы обновить сессию, т.о. сессия не закончится; единственное, что в этом случае, я бы рекомендовал через какое-то определенное время делать автоматически операцию закрытия сессии (?Logout), на случай, что пользователь оставит открытой страницу на очень долго.
единственный вопрос - как определить предполагаемое время сессии? не знаю :) можно создать документ в базе, в котором указывать то же самое значение, что и на сервере установлено. можно было бы попытаться читать его автоматически, но оно может быть указано не в одном заданном месте, а как у сервера спросить более корректно, я не в курсе.
могу предложить посмотреть проект domBulletin - очень много интересных вещей под веб для домино.

опять-таки, не понимаю зачем оно надо?.. буду рад объяснению
 
H

HITMAN-NN

#8
Это штука нужна для удобства пользователей... Просто по истечению сессии у мя сразу не кидает на логин-форму... а кидает только по рефрешу страницы... а ползователь не может понять что время сессии истекло, а возможности его ограничились...

Короче пришел к такому варианту: через какой-то короткий промежуток времени делать запрос на сервер, если он возвращает что сессия протухла уже, то рефрешем страницу и автоматом нас кидает на логин-форму... Тока вопрос какой запрос делать???
 

Akupaka

А че я?.. О.о
04.10.2007
3 360
1
#9
Короче пришел к такому варианту: через какой-то короткий промежуток времени делать запрос на сервер, если он возвращает что сессия протухла уже
каждое обращение к серверу говорит, что Я ЕЩЕ ЖИВОЙ! НЕ ЗАКРЫВАЙ СЕССИЮ!
как при этом сервер должен вернуть, что сессия протухла? О.о

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