class Devise::Strategies::DatabaseAuthenticatable

Default strategy for signing in a user, based on his email and password in the database.

def authenticate!

def authenticate!
  resource = valid_password? && mapping.to.find_for_database_authentication(authentication_hash)
  return fail(:not_found_in_database) unless resource
  if validate(resource){ resource.valid_password?(password) }
    resource.after_database_authentication
    success!(resource)
  end
end