authlogic电子邮件作为用户名

ADA*_*DAM 12 ruby ruby-on-rails authlogic

如何覆盖/设置authlogic以使用电子邮件字段而不是用户名字段进行注册和身份验证,对于某些注册方案,用户名+电子邮件偶尔会过于激烈

ben*_*sie 11

如果您只是删除login列并添加一email列,authlogic将完成剩下的工作.

有关所有可选/必需的DB列,请参阅此示例自述文件.

  • 魔法!.我发现使用它也有效:acts_as_authentic do | c | c.login_field =:电子邮件结束 (12认同)
  • 我需要使用电子邮件登录,然后零售用户名.所以我更喜欢ADAM的评论答案. (2认同)

amr*_*rnt 11

更好的答案试试这个...好吧,如果需要更新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
Run Code Online (Sandbox Code Playgroud)

--- 例子2

user_session.rb

class UserSession < Authlogic::Session::Base
  find_by_login_method :find_by_anything
end
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)