Rails设计reset_password_token一直被标记为“已过期”

时间:2011-07-28 00:57:04

标签: devise ruby-on-rails-plugins

我正在尝试使用devise的reset_password_token强制用户在首次登录时更改密码,使用我在此处阅读的内容:Rails Devise: Set password reset token and redirect user

我得到的页面加载显示“设置密码”,但每次点击提交时,都会显示一条通知,说明reset_password_token已过期并请求新的。我已经尝试将reset_password_token设置为变量,而不是通过用户对象(@ user.reset_password_token)进行访问,以防万一是通过访问该令牌计算到期,但是当我尝试设置初始密码时它仍然表示它已过期。我不确定如何计算到期时间,有人有想法吗?

1 个答案:

答案 0 :(得分:16)

找到了答案!

生成reset_password_token时,@user.reset_password_sent_at 需要设置为Time.now,否则设置为run @user.reset_password_period_valid?以查明重置令牌是否为 仍然有效,它将为零,并假设令牌已过期。