ruby-on-rails Devise:如何使电子邮件确认令牌无效或取消?

4xy9mtcn  于 2023-11-20  发布在  Ruby
关注(0)|答案(3)|浏览(102)

在Devise 2.2.3和Rails 3.2.x中,我想创建一个例程,用户可以手动使他们可能发送到错误电子邮件地址的确认令牌/电子邮件无效。
我想我需要取消未确认的邮件和确认令牌。这是正确的吗?
我在Google或Devise文档中没有看到任何关于此过程的内容。
场景:
1.现有用户更改其电子邮件。
1.用户意识到他们刚刚给前妻发了一封电子邮件。
1.用户不希望前任控制其帐户。
1.用户可以快速取消程序,从而保护自己的安全。

ojsjcaue

ojsjcaue1#

由于我不想取消确认用户,我最终这样做:

def cancel_change_email!
  self.confirmation_token = nil
  self.unconfirmed_email = nil
  self.save!
end

字符串
看起来还可以。我把这个方法放到了一个模块中,我把它包含在了User模型中,但是如果你是这样做的话,你可以把它直接放到User模型中。我想这很容易,但是我有点想它会内置在Devise中。

ntjbwcob

ntjbwcob2#

我不认为Devise提供了一个方法,但你可以自己这样做:

user = User.find(1)
user.confirmation_token = nil
user.confirmed_at = nil
user.save!

字符串

fhity93d

fhity93d3#

是的,你可以在某种回调中手动清空内容,然后重新发送确认指令。但是,你也可以使用Devise对reconfirmable的支持来实现这一点,当用户更改他们的电子邮件地址时可以使用。如果设置了这个,用户需要“重新确认”他们的帐户,你甚至可以延迟电子邮件更改,直到他们再次成功确认。

相关问题