Rails 3.0通过回答问题设置重置密码 [英] Rails 3.0 Devise reset Password by answering a question

查看:122
本文介绍了Rails 3.0通过回答问题设置重置密码的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述



我想知道我可以如何实现这个问题忘记以下逻辑密码:


  1. 忘记密码页面用户输入用户名

  2. 下一步应用程序应显示存储在db中的问题。

  3. 如果答案与存储在db中的值匹配,则用户回答问题和应用程序与答案相匹配。

  4. 它重定向到编辑密码页面,密码可以更新。

我试图覆盖devise的密码控制器,但被卡住。

提前感谢您的帮助。



注意:我是新的rails和我的第一个项目

解决方案

p>您不需要覆盖 Devise


  1. 使您的自己的 forget_password 路线:

routes.rb

  getforgot_password=> password#忘记
getforgot_password / verify_question=> password#verify_question
postforgot_password / verify_answer=> password#verify_answer
postforgot_password / reset_password=> 密码#重置




  1. 创建 app / controller / passwords_controller.rb 并通过表单/渲染填写所需的逻辑。

  2. 创建视图。

  3. 更改忘记密码链接到您自己的

  4. 利润


I am using devise with rails 3. In user model I have created fields for the question and answer to that question.

I want to know How I can implement forget password in following logic:

  1. On forget password page User enters the Username
  2. On Next step application should displays the question stored in db.
  3. User answers the question and app matches the answer if answer is matched with values stored in db.
  4. It redirects to edit password page where password can updated.

I tried to override password controller of devise but got stuck.

Thanks for help in advance.

Note: I am new to rails and its my first project

解决方案

You don't need to override Devise for this.

  1. make your own forget_password routes:

in routes.rb:

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"

  1. Create app/controller/passwords_controller.rb and fill out logic you want via forms / render.
  2. Create views.
  3. Change forgot password link to your own.
  4. Profit

这篇关于Rails 3.0通过回答问题设置重置密码的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆