セッションタイムアウト
シラサギのセッションタイムアウトには、ハードリミットとソフトリミットとが設定されています。 ハードリミットとは、データベースに設定された制限で、ソフトリミットとは、シラサギに設定された制限です。
ソフトリミット
ソフトリミットの既定値は 30 分で、30 分間何も操作しなければ自動でログアウトします。 ここでは、設定方法を解説します。
変更方法
ソフトリミットは設定ファイル sns.yml
に設定されています。
sns.yml
を変更する前に次のコマンドでコピーしましょう。
$ cp -n config/defaults/sns.yml config/sns.yml
sns.yml
に次のような設定があります。
production:
session_lifetime: 1800
この設定は、セッションのタイムアウトを秒数で設定しています。 既定は 1800 秒 = 30 分となっています。
ハードリミット
ハードリミットは、データベースに設定された制限で、既定値は 60 分です。 ソフトリミットの設定値にかかわらず、既定では最大 60 分間何も操作しなければ自動でログアウトします。
変更方法
ハードリミットを 120 分(= 7200 秒)に変更したい場合、シラサギディレクトリで次のコマンドを実行します。
bundle exec rake ss:session_lifetime:hard limit=7200
上記のコマンドは v1.11 以降で使用することができます。v1.10 以前をご利用の方は
mongo
コマンドを用いて直接データベースを修正してください。以下にmongo
コマンドを用いて 120 分(= 7200 秒)に変更にする実行例を示します。use シラサギが利用しているデータベース; // 認証が必要な場合、次のコマンドを実行 // db.auth("ユーザーID", "パスワード"); db.sessions.dropIndex("updated_at_1"); db.sessions.createIndex({ updated_at: 1 }, { expireAfterSeconds: 7200 });
「シラサギが利用しているデータベース」は、標準は ss ですので、一行目のコマンドは use ss; となります。
制限
ソフトリミットは、ハードリミットの範囲内で変更させることができます。 ハードリミットの既定値は 60 分ですので、既定ではソフトリミットは最大 3600 秒までの範囲で設定することが出来ます。