我有一个Rails 4应用程序设置为使用Desive,我运行的密码重置问题.我已经设置好了邮箱,密码重置邮件发送正常.提供的链接有正确的重置密码令牌,我用该数据库进行了判断.然而,当我用正确格式的密码提交表单时,它会给出一个错误,表明重置令牌无效.
然而,完全相同的代码在本地运行到rails s
.邮箱发送,我可以重置密码.我使用的代码只是标准的设计代码,我没有重写任何代码.
也许是因为apache ?我对它不太熟悉.有人有什么 idea 吗?
我有一个Rails 4应用程序设置为使用Desive,我运行的密码重置问题.我已经设置好了邮箱,密码重置邮件发送正常.提供的链接有正确的重置密码令牌,我用该数据库进行了判断.然而,当我用正确格式的密码提交表单时,它会给出一个错误,表明重置令牌无效.
然而,完全相同的代码在本地运行到rails s
.邮箱发送,我可以重置密码.我使用的代码只是标准的设计代码,我没有重写任何代码.
也许是因为apache ?我对它不太熟悉.有人有什么 idea 吗?
判断app/views/devise/mailer/reset_password_instructions.html.erb
中的代码
链接should可以通过以下方式生成:
edit_password_url(@resource, :reset_password_token => @token)
如果视图仍使用此代码,则这将是问题的原因:
edit_password_url(@resource, :reset_password_token => @resource.password_reset_token)
Desive开始存储令牌的散列,因此邮箱需要使用真实令牌(@token
)而不是数据库中存储的散列值来创建链接.
这一变化发生在143794d701年的Deave中