2013-01-21 34 views
2

Devise是一個夢幻般的寶石可用於基本或omniauth身份驗證sign_up和其他事情如會話維護,重新發送確認密碼等。是否用同一個帳號設計了多個email_id?

但是有可能使用設計將多個電子郵件地址映射到同一用戶嗎?

像我有3,4電子郵件ID如

  1. [email protected]
  2. [email protected]
  3. [email protected]

使用案例和示例

我已經註冊了我的第一個電子郵件ID,即[email protected]使用自動化系統並創建帳戶。但我總是喜歡使用我的其他email_id,即[email protected]。所以,我想建立一個系統,用戶可以使用任何一個上述電子郵件地址登錄相同/不同的密碼。但是應該有一個用戶帳戶。

回答

1

這裏是我正好需要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. 它發現在授權的電子郵件表中是否存在任何驗證和確認的電子郵件在表中。如果有這樣的條目,它會嘗試找到與該特定授權電子郵件相關的用戶並返回該用戶。
相關問題