LoginSignup
3
5

More than 3 years have passed since last update.

【Rails】deviseでのセッションタイムアウト設定

Posted at

deviseでのセッションタイムアウト設定

目次

  1. セッションタイムアウトを設定するメリット
  2. セッションタイムアウトを設定するデメリット
  3. deviseでのセッションタイムアウト設定

1. セッションタイムアウトを設定するメリット

  1. セッションの盗用などの不正行為の対策になり、安全にアプリケーションを運用することができる
  2. 利用ユーザーのステータスを判定することによって、サーバー側の負担を軽減させることができる

2. セッションタイムアウトを設定するデメリット

  1. 入力フォームなどで、一度中断をし、再開後に入力を行うことができないこと
  2. ログイン状態が切れる回数が多いと、ユーザーが再度ログインする必要があるので、アプリケーションの使い勝手が悪いと判断されてしまうこと

3. deviseでのセッションタイムアウト設定

3-1. Deviseのセッションタイムアウトを設定

以下の記述を入力しましょう。
(コメントアウトされているので、コメントを解除すればOK)

config/initializers/devise.rb
config.timeout_in = 30.minutes

3-2. Userモデルに「timeoutable」を設定

以下の記述を入力しましょう。

app/models/user.rb
class User < ApplicationRecord
  devise :database_authenticatable, :registerable,...省略...:timeoutable
end

※ テストを行う際は1分で設定することがおすすめです。

以上でdeviseでのセッションタイムアウト設定になります。

3
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
5