我正在创建一个新的导轨系统。我正在设置验证设计。我的问题是我所有的现有用户都没有确认令牌,我无法找到一种方法来获取令牌。我原本以为在登录时会提示用户重新发送令牌但事实并非如此。此外,当用户成功进行身份验证时,我无法弄清楚如何更改身份验证过程以添加此链接。
我想更改它以便他们可以登录一段时间,但会在时间段到期之前向他们显示重新发送确认的链接。我看到有一种方法可以设置他们能够登录的时间段,但我无法弄清楚该配置的位置。我也很担心,因为他们在数据库中根本没有confirm_token,所以不会有太多好处。
答案 0 :(得分:2)
这与设计的可确认选项有关。在这里你必须做两件事。首先,您必须设置允许回答确认的时间段。
要设置用户必须确认的时间段,您必须配置设备初始化程序并取消注释一行:
# config/initializers/devise.rb
config.confirm_within = 2.days
接下来你必须手动发送确认邮件(如果它不存在,这个函数也会创建确认令牌),这可以通过控制台或脚本完成:
# in console
User.find(1).send_confirmation_instructions
我会测试它,然后编写以下脚本:
# script.rb
User.all.each do |user|
user.send_confirmation_instructions
end
如果您有数千名用户但是会完成这项工作,那么这是一个非常缓慢的过程。
检查出来:Confirmable
答案 1 :(得分:1)
只需确认您的现有用户
即可User.all.each do |user| user.confirm! end
在控制台或脚本中。