Quando si utilizza il modulo timeoutable
per Devise, come si può determinare quanto tempo dovrà trascorrere prima che la sessione dell'utente corrente scada? L'obiettivo è di includere questo valore in tutte le risposte in modo che lo script lato client possa farne uso. Raccolgo che Devise utilizza internamente Warden per l'autenticazione, ma non ho trovato nulla che spieghi come estrarre la durata della sessione dalle profondità di Warden.Rails/Devise - Determinazione del momento in cui scadrà la sessione utente
5
A
risposta
10
Ecco come si fa:
class User < ActiveRecord::Base
devise :authenticatable, :timeoutable, :validatable, :timeout_in => 20.minutes
end
7
assomiglia si può mettere nel modello come dice Benjamin Tan, o si può mettere in config/inizializzatori/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
Vedere questa domanda StackOverflow: Setting session length with Devise.
0
Per Rails 4:
config/inizializzatori/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
Sapevo che, ma ci sono voluti il tuo post per fare mi rendo conto che era in realtà la risposta. Grazie! – cbmanica
Cosa succede se voglio che 1 utente abbia un timeout diverso e un altro utente diverso? – user1735921