2011-01-26 39 views
3

我使用devise與rails 3.在用戶模型中,我創建了問題和答案的字段。Rails 3.0設計重置通過回答問題的密碼

我想知道我如何能實現忘記下面的邏輯密碼:

  1. 在忘記密碼的頁面用戶輸入用戶名
  2. 在下一步應用程序應該顯示存儲在數據庫的問題。
  3. 如果答案與存儲在數據庫中的值相匹配,用戶將回答問題並且應用程序匹配答案。
  4. 它重定向到編輯可更新密碼的密碼頁面。

我試圖覆蓋設計的密碼控制器,但卡住了。

感謝您的幫助。

注:我是新來的導軌和我的第一個項目

+1

你能提供一些代碼嗎?你有什麼,有什麼不工作等... – polarblau 2011-01-26 15:10:39

回答

0

其實我已經不是以前使用的設計,但是假設你有你的控制器線路上的befor_filter到設計驗證,你可能做這樣的事情:

skip_before_filter :authenticate_with_devise if user_answered_question_correctly? 
0

這種寶石有security_questionable功能,它會做的伎倆,除其他事項外https://github.com/phatworx/devise_security_extension

+0

你有沒有試過這個包?我一直無法獲得security_questionable功能。當我嘗試創建問題時,我得到「無法批量分配受保護的屬性」。 – 2015-10-02 21:49:57

0

你並不需要重寫Devise這一點。

  1. 使自己forget_password路線:

routes.rb

  • 創建app/controller/passwords_controller.rb,並通過表格填寫你想要的邏輯/渲染。
  • 創建視圖。
  • 更改forgot password鏈接到您自己的。
  • 利潤