質問編集履歴

1 バージョン

dialbird

dialbird score 345

2019/01/14 15:20  投稿

Deviseのtimeoutableプラグインを入れなければタイムアウトは無くなるのか
現在Railsとherokuでサービスを運用しているものです。
 
```  
ruby(2.5.0)  
rails(5.2.1)  
devise(4.5.0)  
```  
ログインにDeviseを使っていて、**時間によるタイムアウトを無くしたい**と考えています。
そこでこのように書いているのですが、どういうわけか**本番環境でのみ、ふとした拍子にログアウトさせられてしまうのです。**(ブラウザで開いてから、30分くらい放置してからページをリロードをすると発生しやすい)
```rb
# userモデル
devise :database_authenticatable, :registerable, :recoverable, :rememberable, :validatable, :confirmable, :trackable, :timeoutable
# config/initializers/devise.rb
config.timeout_in = 20.years
# config/application.rb
config.session_store :cache_store, key: "_myapp_#{Rails.env}", expire_after: 20.years
# config/environments/production.rb
config.cache_store = :redis_cache_store, { driver: :hiredis, url: ENV['REDIS_URL'] }
```
セッション情報はRedisにて管理しており、TTLもちゃんと20年後になっているようでした。
**ログアウトされるのは、セッション情報がRedisから消えたからかもとも考えたのですが、調べたら普通に残っていました。**
**ログアウトされるのは、以前のセッション情報がRedisから消えたからかもとも考えたのですが、調べたら普通に残っていました。**
もういっそのことtimeoutableを除けば解決するかも?と考えているのですが、アドバイスをいただけたら嬉しいです。
よろしくお願いいたします。
  • Ruby on Rails

    16468 questions

    Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

  • Devise

    637 questions

    Deviseとは、Ruby-on-Railsの認証機能を追加するプラグインです。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る