2013-12-03 2 views
0

В проекте rails 3.2.13 я использую плагин devise (1.4.2) для системы аутентификации. Здесь мне нужно обновить session_id current_user до значения nil после таймаута сеанса. Как переопределить функцию таймаута?Установите значение nil для session_id во время таймаута сеанса - devize

После входа в систему поле session_id будет обновляться как «A9nEDMZFl7D4ytSfWxrY». После выключения поле session_id будет обновляться с нулевым значением. Теперь мне нужно обновить то же значение nil для истечения сеанса. Как изменить функцию истечения срока действия сеанса?

В создании действия сеанса, я обновляя session_id с помощью Devise.friendly_token

ответ

0

Вам не нужно, чтобы установить сеанс ноль. Вы должны сделать reset_session, чтобы сбросить идентификатор сеанса.

Теперь эти два случая вы упоминаете уже обрабатываемые по завещанию:

  • при создании сеанса, изобрести делает reset_session блокировать фиксации сессии
  • когда сеанс истек, он действительно не имеет значения, что происходит с вашей сессии: вы перенаправлены для входа, и после входа в систему сеанс будет обнулен снова

Если вы храните свои сессии в таблице, как вы должны, вы могли бы сделать эв лучше и просто удалите истекшие сеансы из базы данных. Если вы используете redis в качестве хранилища сеансов, вы можете автоматически истечь ваши сеансы, и он будет обрабатывать это для вас.

Имейте в виду: это просто приятно иметь, так как истекший сеанс в любом случае не будет разрешен.

Последнее замечание: почему вы все еще используете версию 1.4.2?

Смежные вопросы