Module Devise::Models::Authenticatable
In: lib/devise/models/authenticatable.rb

Authenticatable module. Holds common settings for authentication.

Options

Authenticatable adds the following options to devise_for:

  * +authentication_keys+: parameters used for authentication. By default [:email].

  * +request_keys+: parameters from the request object used for authentication.
    By specifying a symbol (which should be a request method), it will automatically be
    passed to find_for_authentication method and considered in your model lookup.

    For instance, if you set :request_keys to [:subdomain], :subdomain will be considered
    as key on authentication. This can also be a hash where the value is a boolean expliciting
    if the value is required or not.

  * +http_authenticatable+: if this model allows http authentication. By default true.
    It also accepts an array specifying the strategies that should allow http.

  * +params_authenticatable+: if this model allows authentication through request params. By default true.
    It also accepts an array specifying the strategies that should allow params authentication.

active_for_authentication?

After authenticating a user and in each request, Devise checks if your model is active by calling model.active_for_authentication?. This method is overwriten by other devise modules. For instance, :confirmable overwrites .active_for_authentication? to only return true if your model was confirmed.

You overwrite this method yourself, but if you do, don‘t forget to call super:

  def active_for_authentication?
    super && special_condition_is_valid?
  end

Whenever active_for_authentication? returns false, Devise asks the reason why your model is inactive using the inactive_message method. You can overwrite it as well:

  def inactive_message
    special_condition_is_valid? ? super : :special_condition_is_not_valid
  end

Methods

Included Modules

Devise::Models::Serializable

Classes and Modules

Module Devise::Models::Authenticatable::ClassMethods

Public Instance methods

Check if the current object is valid for authentication. This method and find_for_authentication are the methods used in a Warden::Strategy to check if a model should be signed in or not.

However, you should not overwrite this method, you should overwrite active_for_authentication? and inactive_message instead.

[Validate]