AnA*_*ice 18 ruby-on-rails devise ruby-on-rails-3
我正在使用带有登录凭据的Devise:电子邮件/密码 - 没有用户名
我刚刚注意到登录过程对电子邮件区分大小写.因此,如果您注册bob@apPle.com,然后尝试使用Bob@apple.com登录,则会收到错误消息.很混乱.
如何使用他们的电子邮件/密码来设计日志,并且电子邮件不区分大小写?
小智 65
您可以轻松解决以下问题.
# config/initializers/devise.rb
Devise.setup do |config|
config.case_insensitive_keys = [:email, :username]
end
Run Code Online (Sandbox Code Playgroud)
Kev*_*tre 10
一种选择是覆盖设计使用的find方法.就像是:
# User.rb
before_save do
self.email.downcase! if self.email
end
def self.find_for_authentication(conditions)
conditions[:email].downcase!
super(conditions)
end
Run Code Online (Sandbox Code Playgroud)
我将此添加到我的用户模型中以将其区分大小写,但在登录时使其不区分大小写:
def self.find_for_database_authentication(conditions = {})
self.where("LOWER(email) = LOWER(?)", conditions[:email]).first || super
end
Run Code Online (Sandbox Code Playgroud)
它适用于Heroku.
顺便说一句,这只是一个临时修复,因为问题已经解决,这将是Devise 1.2的默认行为.有关详细信息,请参阅此拉取请
归档时间: |
|
查看次数: |
7765 次 |
最近记录: |