ブラウザを終了してもDeviseのセッションが切れないようにする
Deviseで「セッション タイムアウト」とかで検索するとDeviseのtimeoutable
を有効にしてinitializers
でconfig.timeout_in
を設定したら良いという記事がたくさん出てきます。
ただこれを設定していても、Railsではデフォルトでセッションクッキー(ブラウザを終了すると消える)設定になっているので、ブラウザを終了してしまうとセッションが切れてしまい困りました。
結論
-
config/initializers/session_store.rb
にexpire_after
にセッションを維持したい期間を記入してサーバーを再起動すればOKです
Rails.application.config.session_store :cookie_store, key: '_xxxx_session', expire_after: 1.week
Deviseのtimeoutable
と同じ期間にしていないとDevise側で強制ログアウトされてしまうと思われる(動作確認はしてない)のでconfig.timeout_in
の期間も同じに設定しておきます。
参考にした記事
Rails の session の有効期限を無期限にする - 9mのパソコン日記 https://blog.kksg.net/posts/rails-eternal-session
Rails、deviseでブラウザを閉じたら、強制的にログアウトさせたい - スタック・オーバーフロー http://ja.stackoverflow.com/questions/10561/rails-devise%E3%81%A7%E3%83%96%E3%83%A9%E3%82%A6%E3%82%B6%E3%82%92%E9%96%89%E3%81%98%E3%81%9F%E3%82%89-%E5%BC%B7%E5%88%B6%E7%9A%84%E3%81%AB%E3%83%AD%E3%82%B0%E3%82%A2%E3%82%A6%E3%83%88%E3%81%95%E3%81%9B%E3%81%9F%E3%81%84
Author And Source
この問題について(ブラウザを終了してもDeviseのセッションが切れないようにする), 我々は、より多くの情報をここで見つけました https://qiita.com/masarufuruya/items/76c441091baedc908c8a著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .