Rails 设计 - 单独的 confirm_within 时间用于重新确认
Rails Devise - Separate confirm_within time for reconfirmable
在 config/initializers/devise.rb
中,我设置了 config.reconfirmable = true
,现在我可以使用 Devises 流程更改电子邮件并发送包含确认令牌的确认邮件。
我也知道我可以用 config.confirm_within = 2.weeks
设置设计令牌的有效期。
但这似乎是两个确认令牌的全局选项:
- 在注册确认邮件中发送的令牌
- 电子邮件更改确认邮件中发送的令牌。
我在文档中找不到任何内容来为这两个令牌设置不同的到期日期。我正在寻找这样的东西 config.confirm_reconfirmable_within = 3.days
我是不是遗漏了什么或者不可能?
我的简短回答是在默认的 Devise 中是不可能的。
如 official doc 所列,confirm_within
是它唯一的相关参数。
我想很少有用户愿意为确认电子邮件设置不同的有效期,所以关于这一点参数不可配置也许并不奇怪......
它似乎在 vendor/bundle/ruby/3.0.0/gems/devise-**/lib/devise/models/confirmable.rb
中定义的 Confirmable#confirm
中进行控制。因此,您可以根据需要重新定义方法。
在 config/initializers/devise.rb
中,我设置了 config.reconfirmable = true
,现在我可以使用 Devises 流程更改电子邮件并发送包含确认令牌的确认邮件。
我也知道我可以用 config.confirm_within = 2.weeks
设置设计令牌的有效期。
但这似乎是两个确认令牌的全局选项:
- 在注册确认邮件中发送的令牌
- 电子邮件更改确认邮件中发送的令牌。
我在文档中找不到任何内容来为这两个令牌设置不同的到期日期。我正在寻找这样的东西 config.confirm_reconfirmable_within = 3.days
我是不是遗漏了什么或者不可能?
我的简短回答是在默认的 Devise 中是不可能的。
如 official doc 所列,confirm_within
是它唯一的相关参数。
我想很少有用户愿意为确认电子邮件设置不同的有效期,所以关于这一点参数不可配置也许并不奇怪......
它似乎在 vendor/bundle/ruby/3.0.0/gems/devise-**/lib/devise/models/confirmable.rb
中定义的 Confirmable#confirm
中进行控制。因此,您可以根据需要重新定义方法。