在 Devise 2.2.3 和 Rails 3.2.x 中,我想创建一个例程,用户可以手动使他们可能发送到错误电子邮件地址的确认令牌/电子邮件无效。
我想我需要取消未确认的电子邮件和确认令牌。这是正确的吗?
我在 Google 或 Devise 文档上没有看到任何关于此过程的内容。
设想:
- 现有用户更改了他们的电子邮件。
- 用户意识到他们刚刚向前妻发送了一封电子邮件。: ) 管他呢。
- 用户不希望 ex 控制他们的帐户。
- 用户快速取消程序,从而保护他们的安全。
谢谢!
在 Devise 2.2.3 和 Rails 3.2.x 中,我想创建一个例程,用户可以手动使他们可能发送到错误电子邮件地址的确认令牌/电子邮件无效。
我想我需要取消未确认的电子邮件和确认令牌。这是正确的吗?
我在 Google 或 Devise 文档上没有看到任何关于此过程的内容。
设想:
谢谢!
由于我不想取消确认用户,我最终这样做了:
def cancel_change_email!
self.confirmation_token = nil
self.unconfirmed_email = nil
self.save!
end
似乎工作。我把这个方法放到了一个模块中,我包含在用户模型中,但是如果你是这样滚动的,你可以把它直接放到用户模型中。我想这很容易,但我有点想它会内置到设计中。
我不认为 Devise 提供了一种方法,但你可以像这样自己做:
user = User.find(1)
user.confirmation_token = nil
user.confirmed_at = nil
user.save!
是的,您可以在某种回调中手动清除内容,然后重新发送确认说明。但是,您也可以使用 Devise 对 reconfirmable 的支持来实现这一点,当用户更改他们的电子邮件地址时可以使用它。如果设置了此项,则用户需要“重新确认”他们的帐户,您甚至可以延迟电子邮件更改,直到他们再次成功确认。