【发布时间】:2011-01-11 13:23:46
【问题描述】:
我正在向使用 Authlogic 的 Rails 应用程序添加密码重置功能。我按照这里的指南进行操作:http://www.binarylogic.com/2008/11/16/tutorial-reset-passwords-with-authlogic/,一切都按我的意愿进行,除了一件事:密码重置表单接受空白密码并且根本不会更改它们。
我一直在四处寻找,并了解到这是预期的默认行为,因为它允许您使用户编辑表单,只有在输入新密码时才更改用户密码,否则忽略它。但在这种情况下,我特别想在用户最初注册时强制验证密码。对于这个问题,我找到了两种可能的解决方案,但还没有弄清楚如何实现它们。
1) 有人在 Google 网上论坛上问过同样的问题:
User model saves with blank password
Ben 的回应是使用@user.validate_password = true 来强制验证密码。我试过这个,但我得到一个未定义的方法错误:undefined method 'validate_password_field=' for #<User>。
2) 似乎有一个名为 ignore_blank_passwords 的 Authlogic 配置选项。它记录在这里:
Module: Authlogic::ActsAsAuthentic::Password::Config#ignore_blank_passwords
这看起来可行,但我的理解是,这是您在 User 模型中的初始 acts_as_authentic 调用中使用的全局配置选项,我不想在应用程序范围内更改它,因为我确实有一个常规的编辑表单供用户使用,我希望默认忽略空白密码。
有人找到解决办法了吗?我在 Authlogic 1.4.1 的更改日志中看到了validate_password=,从那时起就没有任何关于它的内容被删除。我只是不正确地使用它吗?有没有办法在每个请求的基础上使用ignore_blank_passwords?
【问题讨论】:
标签: ruby-on-rails authlogic reset-password