我有一个rails 3.2应用程序,我正在使用设计进行身份验证。
我最近去测试密码重置功能,并注意到重置密码似乎工作(应用程序允许您重置密码然后登录)如果我退出应用程序然后尝试登录再次我无法登录。该应用程序报告我有一个无效的电子邮件/密码组合。
我已检查过数据库是否正在更新,并且reset_password_ [token / sent_at]字段正在正确更新。对象(用户对象)也根据时间戳进行更新。但是,我无法再使用我刚刚使用的密码登录。
我不确定是什么原因引起的。我已经看到了一些关于同一问题的其他相关one other related post,但它并没有真正的答案 - 只是一个线索:盐/胡椒逻辑。
什么允许用户更改密码但不能再次登录?有任何想法吗?
当前ENV: Rails 3.2 设计2.2.4 Ruby 1.9.3
答案 0 :(得分:0)
我弄明白了这个问题。我团队中的另一位开发人员在User对象上添加了一个before_validation回调函数,该对象为新用户生成一个随机密码(因为更简单的注册过程),他们忘记编写密码更新测试。因此,当更新密码时,正在调用before_validation回调并且正在生成新的随机密码。修正了并编写了一些测试,现在它的工作正常。