我在我的应用程序中使用Devise进行身份验证。我不想在用户注册时要求确认电子邮件,但如果用户希望该应用向他们发送电子邮件更新,我确实需要它。这是否可以通过Devise的内置:可确认功能实现?我发现设置设置用户可以在没有确认的情况下登录多长时间,但我基本上想要将其设置为“永远”。
答案 0 :(得分:1)
结帐https://github.com/plataformatec/devise/blob/master/lib/devise/models/confirmable.rb。您可以通过始终返回confirmation_period_valid?
来覆盖true
。
或者,也许您可以将设置更改为10000.years.from_now
,这可能是对“永远”的估计,或许?
答案 1 :(得分:0)
在config/initializers/devise.rb
中查找
# ==> Configuration for :confirmable
# A period that the user is allowed to access the website even without
# confirming their account. For instance, if set to 2.days, the user will be
# able to access the website for two days without confirming their account,
# access will be blocked just in the third day. Default is 0.days, meaning
# the user cannot access the website without confirming their account.
# config.allow_unconfirmed_access_for = 2.days
将其设置为1000.years。然后,在email_updates
方法中,调用#confirmed?
来测试用户是否已确认其帐户。如果没有,请将它们发送到页面以重新发送确认链接,因为它现在可能已过期。