我正在尝试使用devise的reset_password_token强制用户在首次登录时更改密码,使用我在此处阅读的内容:Rails Devise: Set password reset token and redirect user
我得到的页面加载显示“设置密码”,但每次点击提交时,都会显示一条通知,说明reset_password_token已过期并请求新的。我已经尝试将reset_password_token设置为变量,而不是通过用户对象(@ user.reset_password_token)进行访问,以防万一是通过访问该令牌计算到期,但是当我尝试设置初始密码时它仍然表示它已过期。我不确定如何计算到期时间,有人有想法吗?
答案 0 :(得分:16)
找到了答案!
生成reset_password_token时,@user.reset_password_sent_at
需要设置为Time.now,否则设置为run
@user.reset_password_period_valid?
以查明重置令牌是否为
仍然有效,它将为零,并假设令牌已过期。