При использовании модуля timeoutable
для разработки, как определить, как долго он пройдет до истечения срока действия текущего пользователя? Цель состоит в том, чтобы включить это значение во все ответы, поэтому клиентский скрипт может использовать его. Я понимаю, что Devise внутренне использует Warden для аутентификации, но я не нашел ничего, что объясняет, как вывести время истечения сеанса из глубины Warden.Rails/Devise - определение времени окончания сеанса пользователя
5
A
ответ
10
Вот как это сделать:
class User < ActiveRecord::Base
devise :authenticatable, :timeoutable, :validatable, :timeout_in => 20.minutes
end
7
Похоже, вы можете поместить его в модель, как говорит Бенджамин Тан, или вы можете поместить в конфигурации/Инициализаторы/devise.rb
# ==> Configuration for :timeoutable
# The time you want to timeout the user session without activity. After this
# time the user will be asked for credentials again. Default is 30 minutes.
# config.timeout_in = 30.minutes
См. Этот вопрос StackOverflow: Setting session length with Devise.
0
Для Rails 4:
конфигурации/Инициализаторы/devise.rb
if Rails.env.production?
config.timeout_in = 30.minutes
else
config.timeout_in = 7.days
end
user.rb
class User < ActiveRecord::Base
devise :timeoutable
end
Я знал, что, но он принял свой пост, чтобы сделать я понимаю, что это был ответ. Благодаря! – cbmanica
Что делать, если я хочу, чтобы у 1 пользователя был разный тайм-аут, а другой - на другой? – user1735921