默認情況下,devise使用電子郵件註冊在並登錄。如何在設計中「安全」更改用戶的電子郵件地址?
但我想讓該電子郵件地址應該被允許被用戶更改。
如果我允許用戶編輯電子郵件地址,並且用戶指定了一個「不正確」(即錯誤輸入錯誤)電子郵件地址,然後用戶註銷,用戶還會忘記輸入的內容電子郵件是,現在用戶帳戶無法訪問!
如何最好的解決這個問題? (除了創建單獨的,不可更改的用戶名字段,將永遠允許用戶登錄)
默認情況下,devise使用電子郵件註冊在並登錄。如何在設計中「安全」更改用戶的電子郵件地址?
但我想讓該電子郵件地址應該被允許被用戶更改。
如果我允許用戶編輯電子郵件地址,並且用戶指定了一個「不正確」(即錯誤輸入錯誤)電子郵件地址,然後用戶註銷,用戶還會忘記輸入的內容電子郵件是,現在用戶帳戶無法訪問!
如何最好的解決這個問題? (除了創建單獨的,不可更改的用戶名字段,將永遠允許用戶登錄)
如果用戶更改其電子郵件,則可以強制用戶再次確認其帳戶。
有一次,您更新了相關用戶的密碼,您需要取消確認該用戶,然後重新發送確認電子郵件。
要取消確認用戶:
user = User.find(1)
if user.confirmed?
user.confirmed_at = nil
user.save(:validate => false)
end
重新發送電子郵件確認:
user = User.find(1)
user.send_confirmation_instructions
希望這有助於!
設計開箱即用。下面是從初始的信息:
# If true, requires any email changes to be confirmed (exactly the same way as
# initial account confirmation) to be applied. Requires additional unconfirmed_email
# db field (see migrations). Until confirmed new email is stored in
# unconfirmed email column, and copied to email column on successful confirmation.
config.reconfirmable = true
在confirmable module您可能會看到它是如何工作的。
最有可能它沒有在早期版本的設計中實現(今天的版本是3.2.2)。 – peresleguine 2014-01-16 11:51:10