web-dev-qa-db-ja.com

Deviseでセッションの長さを設定する

1〜3時間使用しないと、タイムアウトが発生する私のセッション(正確な長さはわかりません)。これを調整するにはどうすればよいですか?

私はドキュメントを調べましたが、この設定を見つけることができないようです。

ありがとう

41
joshs

Config/initializers/devise.rbを見てください。 config.timeout_inを含む多くの構成設定があります。私のバージョンのデフォルトは30分です。モデル自体に設定することもできます:

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

また、 タイムアウトを動的に設定する も使用できます。

75
Brian Deterling

Rails4では、次のことをお勧めします。

Models/user.rbで::timeoutableを既存のdeviseモジュールのリストに追加します。

class User < ActiveRecord::Base
  devise :timeoutable
end

Config/initializers/devise.rbで:タイムアウトパラメーターを設定します。

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

グローバル:

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

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

また、timeout_inオプションを動的に設定することもできます

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

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