4

我正在尝试自定义设计注册过程以生成随机密码并将其与确认邮件一起发送。

我已经做的是覆盖默认设计的 :validtable 并在需要时生成一个新的随机密码。

  before_validation :password_generation

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

现在我的问题是在原始确认邮件中包含新生成的随机密码。

在定制它的新用户流程时是否有可能跟上 Devise 的原始可用性,或者我应该从头开始构建身份验证流程?

谢谢,哈达尔。

4

1 回答 1

2

(四个月太晚了,但也许其他人可以使用这个)

大多数情况下,您需要做的是将默认的 Devise 邮件程序和视图复制到您的项目中,并config/initializers/devise.rbconfig.mailer. 此时,您可以根据需要自定义电子邮件。(请注意,Devise 使用该术语resource作为抽象,但大多数情况下它表示 User 的实例)。

唯一的诀窍是找到一种方法来记住在创建新用户帐户和生成和发送电子邮件之间生成的密码。当保存用户记录时,Devise 将存储的是密码的加密版本。我必须遵循设计中的逻辑路径才能确定,但​​我敢打赌你可以将它存储在用户的实例变量中,也许是参数或闪存。对此要非常小心;你希望这个值尽可能短——大概只是请求的生命周期。

于 2012-09-26T19:57:43.590 回答