2013-08-01 82 views
0

我有一個rails 3.2應用程序,我使用devise進行身份驗證。密碼重置後無法登錄設計

我最近去測試密碼重置功能,並注意到,雖然重置密碼似乎工作(該應用程序可讓您重置密碼,然後登錄)如果我註銷應用程序,然後嘗試登錄在我再次無法登錄。該應用程序報告,我有一個無效的電子郵件/密碼組合。

我檢查過數據庫正在更新並且reset_password_ [token/sent_at]字段得到正確更新。根據時間戳,對象(用戶對象)也得到更新。但是,我無法再使用剛剛使用的密碼登錄。

我不確定可能是什麼原因造成的。我見過一些其他相關的one other related post關於這個相同的問題,但它並沒有真正的答案 - 只有一個線索:鹽/胡椒的邏輯。

什麼可以讓用戶更改密碼但不能再次登錄?有任何想法嗎?

當前ENV: 的Rails 3.2 設計2.2.4 的Ruby 1.9.3

+0

您能否使用舊密碼登錄?對不起,我覺得有必要說寫你自己的認證。設計需要更多的工作而不是價值。 – Mohamad

+0

原始密碼和新密碼不起作用。 –

回答

0

我想通了這個問題。我的團隊中的另一位開發人員在User對象上添加了一個before_validation回調函數,該回調函數爲新用戶生成一個隨機密碼(因爲註冊過程更簡單),並且他們忘記編寫密碼更新測試。因此,密碼更新時,正在調用before_validation回調,並且正在生成一個新的隨機密碼。修正了這個問題,並編寫了一些測試,現在按照它應該的工作。

+0

我會接受我自己的答案,但我不能兩天。我會回去做,然後... –