设计:如何使电子邮件确认令牌无效或取消?

wul*_*one 0 security email ruby-on-rails devise

在Devise 2.2.3和Rails 3.2.x中,我想创建一个例程,使用户可以手动使可能已发送到错误电子邮件地址的确认令牌/电子邮件无效。

我在想我需要取消未确认的电子邮件和确认令牌。这是正确的吗?

我没有在Google或Devise文档中看到有关此过程的任何内容。

场景:

  1. 现有用户更改了他们的电子邮件。
  2. 用户意识到他们只是向前妻发送了一封电子邮件。: ) 管他呢。
  3. 用户不希望ex拥有对其帐户的控制权。
  4. 用户迅速取消该程序,从而保护其安全性。

谢谢!

wul*_*one 5

由于我不想取消确认用户,因此我这样做了:

def cancel_change_email!
  self.confirmation_token = nil
  self.unconfirmed_email = nil
  self.save!
end
Run Code Online (Sandbox Code Playgroud)

似乎可以工作。我将此方法放入了包含在User模型中的模块中,但是如果您采用这种方式,则可以将其正确放入用户模型中。我想这很容易,但是我有点想它会内置到Devise中。