Rails 3.0通过回答问题来设置重置密码

时间:2011-01-26 14:02:19

标签: ruby-on-rails ruby-on-rails-3 passwords devise

我正在使用带有rails 3的设计。在用户模型中,我已经为该问题的问题和答案创建了字段。

我想知道如何在以下逻辑中实现忘记密码:

  1. 忘记密码页面用户输入用户名
  2. 开启下一步,应用程序应显示存储在db。
  3. 中的问题
  4. 用户回答问题,如果答案与db。中存储的值匹配,则app会匹配答案。
  5. 重定向到编辑可以更新密码的密码页面。
  6. 我试图覆盖设计的密码控制器,但卡住了。

    提前感谢您的帮助。

    注意:我是rails的新手,也是我的第一个项目

3 个答案:

答案 0 :(得分:0)

我之前没有使用过Devise,但假设你的控制器上有一个befor_filter路由到Devise身份验证,你可能会做类似的事情:

skip_before_filter :authenticate_with_devise if user_answered_question_correctly?

答案 1 :(得分:0)

这个gem有一个security_questionable功能,可以解决这个问题,https://github.com/phatworx/devise_security_extension

答案 2 :(得分:0)

您无需为此覆盖ctrl+d

  1. 制作您自己的python hello.py路线:
  2. Devise中的

    forget_password
    1. 创建routes.rb并通过表单/渲染填写您想要的逻辑。
    2. 创建视图。
    3. get "forgot_password" => "passwords#forgot" get "forgot_password/verify_question" => "passwords#verify_question" post "forgot_password/verify_answer" => "passwords#verify_answer" post "forgot_password/reset_password" => "passwords#reset" 链接更改为您自己的链接。
    4. 利润