Podczas korzystania z modułu timeoutable
dla Devise, jak ustalić, ile czasu upłynie, zanim wygasa sesja bieżącego użytkownika? Celem jest uwzględnienie tej wartości we wszystkich odpowiedziach, aby skrypt po stronie klienta mógł z niej skorzystać. Domyślam się, że Devise wewnętrznie używa Wardena do uwierzytelniania, ale nie znalazłem niczego, co wyjaśniałoby, jak wyciągnąć czas wygaśnięcia sesji z głębi Strażnika.Rails/Devise - Określanie, kiedy sesja użytkownika wygaśnie
5
A
Odpowiedz
10
Oto jak to zrobić:
class User < ActiveRecord::Base
devise :authenticatable, :timeoutable, :validatable, :timeout_in => 20.minutes
end
7
Wygląda jak można umieścić go w modelu jak mówi Benjamin Tan, czy można umieścić w config/inicjalizatory/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
Zobacz to pytanie StackOverflow: Setting session length with Devise.
0
dla szyn 4:
config/inicjalizatory/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
Wiedziałem o tym, ale to wzięło swój post, aby uświadomiłem sobie, że to była właściwie odpowiedź. Dzięki! – cbmanica
Co zrobić, jeśli chcę, aby 1 użytkownik miał inny limit czasu, a inny użytkownik inny? – user1735921