Rails使用电子邮件和其他字段设计身份验证

时间:2017-12-21 22:57:31

标签: ruby-on-rails-3 devise

使用带设计的rails。在用户表上,我有电子邮件和字段record_status。记录状态将包含“有效”或“已删除”

我需要更改以使用电子邮件进行身份验证并记录record_status ='active'。

我已准备好此代码。

在我的用户模型中

def self.find_for_database_authentication(warden_conditions)
  status = 'active'
  where(:email => warden_conditions[:email], :record_status => warden_conditions[:status]).first
end

在我的初始化程序devise.rb

config.case_insensitive_keys = [:email]

感谢帮助人员

1 个答案:

答案 0 :(得分:1)

有一个初始化程序用于设计它的文件路径是config/initializers/devise.rb第37行你应该看到

# config.authentication_keys = [:email]

现在您可以将此更新为

config.authentication_keys = [:email, :other_field]
  

任何身份验证机制的配置    配置对用户进行身份验证时使用的密钥。默认是    只是:电子邮件。您可以将其配置为使用[:username,:subdomain],以便使用    验证用户,两个参数都是必需的。记住那些    参数仅在进行身份验证时使用,而不是在从中进行检索时使用    会话。如果您需要权限,则应在before过滤器中实现。    您还可以提供散列,其中值是布尔值,确定是否    当值不存在时,应该中止身份验证。