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

Тема в разделе "Lotus - Программирование", создана пользователем HITMAN-NN, 26 окт 2009.

  1. HITMAN-NN

    HITMAN-NN Гость

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

    ToxaRat Чёрный маг
    Lotus team

    Регистрация:
    6 ноя 2007
    Сообщения:
    3.046
    Симпатии:
    18
    HITMAN-NN
    ну время сессии истекло задается в настройках серверного документа
    Idle session timeout: 30 minutes
    а редирект по идеи создать портал
     
  3. HITMAN-NN

    HITMAN-NN Гость

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

    ToxaRat Чёрный маг
    Lotus team

    Регистрация:
    6 ноя 2007
    Сообщения:
    3.046
    Симпатии:
    18
    помню делал сам определение сесии
    заключалось в том что в урл добавлялось что-то типа SES=UNID
    где UNID это унид дока в котором я прописавал что за пользователь логонился и все его данные, потом при заходе на другую страницу я обновлял этот док, тем самым четко знал сколько времени прошло с прошлого раза и при желании спокойно ставил скриптовый таймер
     
  5. HITMAN-NN

    HITMAN-NN Гость

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

    ToxaRat Чёрный маг
    Lotus team

    Регистрация:
    6 ноя 2007
    Сообщения:
    3.046
    Симпатии:
    18
    HITMAN-NN
    а что вытаскивать то?
    часть кода на страничке делаешь динамическим
     
  7. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    и что дает знание сколько прошло времени с прошлого обращения к сервверу?
    если пользователь зашел в 12-00 на сервер, аутентифицировался. Простой сессии пусть указан в 30 мин. Потом пользователь через 35 мин заходит на сервер и получает страницу аутентификации! И шо?

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

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

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

    HITMAN-NN Гость

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

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

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    каждое обращение к серверу говорит, что Я ЕЩЕ ЖИВОЙ! НЕ ЗАКРЫВАЙ СЕССИЮ!
    как при этом сервер должен вернуть, что сессия протухла? О.о

    и правильно, и так и должно быть! это тонкий клиент! он работает не от сервера, а от пользователя
     
Загрузка...

Поделиться этой страницей