аутентичное письмо как имя пользователя - PullRequest
12 голосов
/ 18 марта 2010

Как переопределить / настроить authlogic для использования поля электронной почты вместо поля имени пользователя для регистрации и аутентификации, имея имя пользователя + электронное письмо иногда слишком интенсивно для некоторых сценариев регистрации

Ответы [ 3 ]

11 голосов
/ 20 мая 2010

лучший ответ, попробуйте это ... ну, обновите authlogic gem, если необходимо!

user_session.rb

class UserSession < Authlogic::Session::Base
  find_by_login_method :find_by_email #for example or you can make what ever method see exapmle 2
end

--- пример 2

user_session.rb

class UserSession < Authlogic::Session::Base
  find_by_login_method :find_by_anything
end

user.rb

class User < ActiveRecord::Base
  acts_as_authentic

  def self.find_by_anything(login)
    find_by_login(login) || find_by_email(login) || find_by_id(login)
  end
end
11 голосов
/ 18 марта 2010

Если вы просто удалите столбец login и добавите столбец email, authlogic сделает все остальное.

См. Этот пример readme для всех необязательных / обязательных столбцов БД.

3 голосов
/ 09 июня 2011

Поскольку комментарий Адама содержит хороший ответ на этот вопрос. Добавьте это к вашей модели пользователя:

class User < ActiveRecord::Base
  acts_as_authentic do |c| c.login_field = :email end
end
...