【问题标题】:Devise - do not use email设计 - 不要使用电子邮件
【发布时间】:2012-09-02 08:16:00
【问题描述】:

我希望 Devise 身份验证使用登录而不是电子邮件并跳过电子邮件验证,但保留密码验证。如何做到这一点?

【问题讨论】:

    标签: ruby-on-rails validation devise passwords


    【解决方案1】:

    要更改设计用于身份验证的模型属性,您需要查看 devise.rb 文件中的“任何身份验证机制的配置”部分。你至少需要改变

    config.authentication_keys = [ :email ]
    

    config.authentication_keys = [ :login ]
    

    你可能想改变

    config.case_insensitive_keys = [ :email ]
    

    config.case_insensitive_keys = [ :login ]
    

    您还应该查看 apneadiving 提供的链接,因为它解释了如何在一个模型中进行这些更改,而不是为所有模型进行更改(这就是更改 devise.rb 所做的)。

    要更改设计用于验证电子邮件的正则表达式,您可以将 config.email_regexp 属性更改为您想要的任何内容 - 例如".*" 将允许任何人使用 ANYTHING 作为登录名,所以我不建议这样做。

    【讨论】:

    • 想进一步解释吗?我确实假设您已经在 User 模型中定义了一个登录字段。如果您使用的是默认设计视图,则必须在 session/new.html.erb 中进行视图更改,例如“text_field :login”而不是“email_field :email”。
    【解决方案2】:

    解释了所有内容here,尤其是如何摆脱电子邮件(见底部)。

    【讨论】:

      【解决方案3】:
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-24
      • 2019-08-04
      相关资源
      最近更新 更多