web-dev-qa-db-fra.com

Définition de la durée de la session avec Devise

Mes sessions avec délai de mise au point après 1-3 heures de non-utilisation (je ne sais pas exactement combien de temps). Comment puis-je régler cela?

J'ai regardé les documents et je n'arrive pas à trouver un paramètre pour cela.

Merci

43
joshs

Regardez dans config/initializers/devise.rb. Il existe de nombreux paramètres de configuration, notamment config.timeout_in. La valeur par défaut dans ma version est de 30 minutes. Vous pouvez également le définir sur le modèle lui-même:

class User < ActiveRecord::Base
  devise :timeoutable, :timeout_in => 15.minutes

Vous pouvez maintenant aussi définir le délai d'attente dynamiquement .

79
Brian Deterling

Avec Rails4, la meilleure chose à suivre est:

Dans models/user.rb: Ajoutez : timeoutable à la liste déjà existante des modules de devise.

class User < ActiveRecord::Base
  devise :timeoutable
end

Dans config/initializers/devise.rb: définissez le paramètre timeout.

Devise.setup do |config|
  config.timeout_in = 3.hours
end
12
Ankush

Global:

class User < ActiveRecord::Base
  devise (...), :timeoutable
end

Devise.setup do |config|
  config.timeout_in = 3.hours
end

Il est également possible de définir dynamiquement l'option timeout_in

class User < ActiveRecord::Base
  devise (...), :timeoutable

  def timeout_in
    if self.admin? 
      1.year
    else
      2.days
    end
  end
end
8
rusllonrails