2012-06-07 22 views
4

我試圖自定義設計註冊過程來生成一個隨機密碼,併發送它與確認郵件。Rails3.2 - 如何在用戶註冊時自定義Devise生成隨機密碼?

我已經做了什麼就是重寫默認的Devise's:validtable,並根據需要生成一個新的隨機密碼。

before_validation :password_generation 

    def password_generation 
     password_confirmation = password = Devise.friendly_token.first(7) if password.nil? || password.blank? 
    end 

現在我的問題是包括新生成的隨機密碼與原始確認郵件。

定製它的新用戶進程時,有沒有可能跟上Devise的原始可用性,還是應該從頭構建身份驗證過程?

謝謝, 哈達。

回答

2

(4個月爲時已晚,但也許別人可以用這個)

晴,你需要做的是複製默認的設計郵件和意見,您的項目,並在config/initializers/devise.rb指定config.mailer本地類。此時,您可以隨意自定義電子郵件。 (注意Devise使用術語resource作爲抽象,但大多數意味着用戶的一個實例)。

唯一的技巧就是找到一種方法來記住在創建新用戶帳戶和生成併發送電子郵件之間生成的密碼。當保存用戶記錄時,設計將存儲的是密碼的加密版本。我必須遵循Devise中的邏輯路徑來確保,但我敢打賭,你可以將它存儲在用戶的實例變量中,或許是params或者flash。對此非常小心;你希望這個值儘可能短 - 大概只是請求的生命週期。

相關問題