gpt4 book ai didi

ruby-on-rails - 仅在电子邮件确认后才允许重置密码

转载 作者:行者123 更新时间:2023-12-05 07:47:15 25 4
gpt4 key购买 nike

我有一个非常标准的设计安装,同时启用了 recoverableconfirmable

如果用户还没有确认他们的电子邮件,我需要禁用密码重置

例如:

  • 用户使用电子邮件 whatever@example.com 注册
  • 确认邮件已发送
  • 用户在确认他的电子邮件之前转到并重置密码
  • 重置密码电子邮件不应发送

最佳答案

我知道这是一个老问题,但我有相同的用例并通过覆盖用户模型的设计 send_reset_password_instructions 方法解决了它。这是我的方法的最终版本:

def self.send_reset_password_instructions(attributes={})
recoverable = find_or_initialize_with_errors(reset_password_keys, attributes, :not_found)

if (recoverable.persisted? && !recoverable.confirmed?)
recoverable.errors.add(:email, I18n.t('devise.failure.not_verified'))
else
recoverable.send_reset_password_instructions
end

recoverable
end

更具体地说 - 如果用户保存在数据库中但未通过电子邮件验证添加错误并省略重置密码电子邮件发送。

关于ruby-on-rails - 仅在电子邮件确认后才允许重置密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40011513/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com