без использования devise gem, автоматический c выход из системы через x минут в ruby - PullRequest
0 голосов
/ 28 апреля 2020

Я не использовал devise gem для аутентификации при входе в систему и хочу реализовать функцию автоматического выхода из системы c, если пользователь неактивен / неактивен в течение нескольких минут. как это сделать Пожалуйста, помогите мне.

Ответы [ 2 ]

0 голосов
/ 28 апреля 2020

Будет применяться крошечная запись данных на пользователя в сеансе. Например:

{
  user_id: 1000,
  timestamp: 1588061624
}

Установить такую ​​информацию в сеансе после входа пользователя. Затем при каждом запросе сначала проверяйте, является ли последнее касание данных в сеансе недостаточно старым по сравнению с желаемым временем ожидания. Вы можете проверить сеанс чем-то вроде session timestamp + timeout period > current timestamp.

Затем обновите отметку времени до текущего значения, если сеанс все еще действителен. В противном случае удалите сеанс пользователя и выйдите из него.

0 голосов
/ 28 апреля 2020

с Devise

В рельсах вы можете найти опцию в файле инициализатора devise config>initializers>devise.rb

config.timeout_in = 20.minutes

здесь вы можете укажите лимит, после которого пользовательский сеанс истечет. В приведенном выше случае он истекает через 20 минут, и пользователю снова будет предложено ввести учетные данные.

Без устройства

Вы можете просто истечь сессию пользователя с config>initializers>session_store.rb

Rails.application.config.session_store :cookie_store, expire_after: 30.minutes

Таким образом, срок действия всех данных сеанса истечет через 30 минут. А так как вы будете хранить вошедшую в систему информацию пользователя в сеансе, эти данные будут стерты. Таким образом, пользователь выйдет из системы после этого.

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