2011/01/04

Devise でタイムアウトまでの時間を変更する

現在のシステムでは Devise を認証システムとしているのですが、タイムアウト時間がデフォルトで 30 分となっています。
タイムアウト時間の確認はこんな感じでできます。(User は generate したモデル名により変わる)
% rails c
irb(main):001:0 => User.timeout_in
=> 1800 secondes
User.timeout_in が使用されているのは、ここでわかる。
というわけで、User.timeout_in を上書きしてやればうまくいきそうだが、ちょっとかっこわるい。
やっぱり、application.rb や production.rb なんかで config.hogehoge でやりたい。
調べてみたらこんな感じでできるようだ。(とりあえず2時間に変更する)
module App
  class Application < Rails::Application
    # some settings

    # devise settings
    config.devise.timeout_in = 2 * 60 * 60 # timeout seconds

    # some settings
  end
end
確認してみる。
% rails c
irb(main):001:0 => User.timeout_in
=> 7200
うん変わってる。(secondsがどっか行ったが)
config.devise の実体は Devise モジュールで、ソースを見るとその他にも多くの設定が行えるのがわかる。
devise 関連の設定は config.devise で行うと把握しておけば大丈夫だろう。

-- 2011-01-28 追記
# このほうがいいね
# config.devise.timeout_in = 2 * 60 * 60
config.devise.timeout_in = 2.hours

0 件のコメント :

コメントを投稿