加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – Rails3.2 – 如何自定义Devise以在用户注册时

发布时间:2020-12-17 02:13:23 所属栏目:百科 来源:网络整理
导读:我试图自定义Devise注册过程以生成随机密码并将其与确认邮件一起发送. 我已经做的是覆盖默认的Devise:validtable并在需要时生成一个新的随机密码. before_validation :password_generation def password_generation password_confirmation = password = Dev
我试图自定义Devise注册过程以生成随机密码并将其与确认邮件一起发送.

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

before_validation :password_generation

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

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

有没有可能在定制它的新用户进程时跟上Devise的原始可用性,还是应该从头开始构建身份验证过程?

谢谢,
哈达尔.

解决方法

(四个月来不及,但也许其他人可以使用这个)

大多数情况下,您需要将默认的Devise邮件程序和视图复制到项目中,并在config / initializers / devise.rb中指定config.mailer中的本地类.此时,您可以根据需要自定义电子邮件. (请注意,Devise使用术语资源作为抽象,但大多数情况下它意味着用户的实例).

唯一的技巧是找到一种方法来记住在创建新用户帐户的时间与生成和发送电子邮件之间生成的密码.在保存用户记录时,Devise将存储的是密码的加密版本.我必须遵循Devise中的逻辑路径来确定,但我敢打赌你可以将它存储在User上的实例变量中,也许是params或者flash.对此要非常小心;你希望这个值尽可能短暂 – 大概就是请求的生命周期.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读