Wie man Devise mit der Anzahl fehlgeschlagener Versuche abschließbar macht

Verwenden von Devise 2.1.2 und Rails 3.2.6

Ich führe diese Fragen und Antworten nur für den Fall durch, dass andere auf dieses Problem stoßen, weil ich wenig und verstreute Dokumentation dafür gefunden habe.

Dieser Fehler kann auftreten, wenn Sie versuchen, einzurichtenDevise als abschließbar.

undefined local variable or method `locked_at' for [someClass]

Dies bedeutet, dass Ihr Modell nicht über die entsprechenden Attribute verfügt.

Voraussetzungen: Richten Sie Folgendes in config / initializers / devise.rb ein

# ==> 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

# Number of authentication tries before locking an account if lock_strategy
# is failed attempts.
config.maximum_attempts = 20

# Time interval to unlock the account if :time is enabled as unlock_strategy.
# config.unlock_in = 1.hour

Richten Sie Ihr Modell so ein, dass es einschließtdevise :lockable:

class Example < ActiveRecord::Base
  # Include default devise modules. Others available are:
  # :token_authenticatable, :confirmable,
  # :lockable, :timeoutable and :omniauthable
  devise :database_authenticatable, :registerable,
         :recoverable, :rememberable, :trackable, :validatable, :lockable

Antworten auf die Frage(2)

Ihre Antwort auf die Frage