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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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]

谢谢你的帮助

答案

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

# config.authentication_keys = [:email]

现在你可以更新它了

config.authentication_keys = [:email, :other_field]

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

以上是关于Rails使用电子邮件和其他字段设计身份验证的主要内容,如果未能解决你的问题,请参考以下文章

向 iOS 应用程序公开 Rails/Devise 身份验证

rails 3 使用设备进行身份验证

graphql_devise 用于 Rails/Graphql/Apollo/React 中的身份验证。 “字段需要身份验证”错误

Rails 中的电子邮件确认,无需使用任何现有的身份验证 gem/插件

Rails API:实现身份验证的最佳方式?

markdown [RAILS]使用设计进行LDAP身份验证