【问题标题】:Does devise work with multiple email_id with same account ??设备是否可以使用具有相同帐户的多个电子邮件 ID ?
【发布时间】:2013-01-21 11:16:10
【问题描述】:

Devise 是一个很棒的 gem,可用于基本或omniauth 身份验证注册以及会话维护、重新发送确认密码等其他事情。

但是是否可以使用 devise 将多个电子邮件地址映射到同一个用户?

就像我有 3,4 个电子邮件 ID,例如

  1. sahil@abc.com
  2. sahil@xyz.com
  3. sahil@mno.com

用例和示例

我已经使用自动化系统注册了我的第一个电子邮件 ID,即sahil@abc.com,并创建了帐户。但我总是更喜欢使用我的其他 email_id,即sahil@xyz.com。所以,我想建立一个系统,用户可以使用上述任何一个具有相同/不同密码的电子邮件地址登录。但用户应该只有一个帐户。

【问题讨论】:

    标签: ruby-on-rails email authentication devise


    【解决方案1】:

    我会说:

    • 您有一个电子邮件字段

    • 您在某处存储了其他电子邮件

    你可以告诉 Devise you allow login based on different fields

    【讨论】:

      【解决方案2】:

      我认为更酷的方法是尝试覆盖“authentication_keys”方法,因为它allows you to define the keys

      但是,以下链接有一个working solution :)

      HTH

      【讨论】:

        【解决方案3】:

        这正是我需要的RoR Devise: Sign in with username OR email

          def self.find_for_database_authentication(conditions={})
            (self.find_by_email(conditions[:email])) || (AuthorizedEmail.confirmed.find_by_email(conditions[:email]).user if AuthorizedEmail.confirmed.find_by_email(conditions[:email]).present?)
          end
        

        它的作用是:

        1. 首先尝试通过电子邮件ID搜索找到用户记录进行身份验证。
        2. 如果它得到记录,它会返回记录,否则我们进入下一部分。
        3. 如果表中存在任何经过​​验证和确认的电子邮件,它会在授权电子邮件表中查找。如果有这样的条目,它会尝试查找与该特定授权电子邮件相关的用户并返回。

        【讨论】:

          猜你喜欢
          • 2020-08-07
          • 2015-08-30
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-06-23
          • 1970-01-01
          • 2021-05-18
          • 1970-01-01
          相关资源
          最近更新 更多