【rails・devise】アカウントロックを行う際のdevise.rbの記述

【rails・devise】アカウントロックを実装する方法

前提

deviseを使ったRailsプロジェクトを作成しており、ログイン機能が実装されていること

実装手順

まずは以下のconfig/initializers/devise.rbを編集する

コード
  # ==> Configuration for :lockable
  # Defines which strategy will be used to lock an account.
  # :failed_attempts = Locks an account after a number of failed attempts to sign in.
  # :none            = No lock strategy. You should handle locking by yourself.
  config.lock_strategy = :failed_attempts # アカウントロック機能を使用するか

  # Defines which key will be used when locking and unlocking an account
  config.unlock_keys = [ :email ] # ロック、アンロックに使用する項目を指定する

  # Defines which strategy will be used to unlock an account.
  # :email = Sends an unlock link to the user email
  # :time  = Re-enables login after a certain amount of time (see :unlock_in below)
  # :both  = Enables both strategies
  # :none  = No unlock strategy. You should handle unlocking by yourself.
  config.unlock_strategy = :email # アンロックする方法を選択。今回はemailを使用

  # Number of authentication tries before locking an account if lock_strategy
  # is failed attempts.
  config.maximum_attempts = 5 # アンロックまでの試行ミス回数

  # Time interval to unlock the account if :time is enabled as unlock_strategy.
  config.unlock_in = 1.hour # もしアカウントを時間でアンロックする場合は、こちらも設定

  # Warn on the last attempt before the account is locked.
  config.last_attempt_warning = true # アカウントロック前の最後の試行で警告するか選択。今回は警告ありを設定

もしlockable用のカラムが追加されていない場合は、追加します。

※またmodelにもlockableを記載します。

※最後サーバーを一度立ち上げ直さないと、設定が反映されないで予期せぬ挙動をする時があります。サーバーを立ち上げ直してください。

詳細はこちらがわかりやすいので、ぜひ参考にしてください。

Leave a Reply

Your email address will not be published.

CAPTCHA