Joh*_*man 4 ruby-on-rails devise
我有一个使用Devise的Rails 3.2应用程序设置.一切都很好,除了我重置密码(通过内置的路由和方法),Devise允许一个空密码.如果至少有一个字符,它将验证长度以及是否与确认匹配.我确实设置了用户帐户,他们可以在不输入密码的情况下更新他们的个人资料,但我认为这与重置密码没有任何关系.
任何帮助表示赞赏.
devise.rb - > http://pastie.org/3911178
user.rb - > http://pastie.org/3911187
谢谢你指点我正确的方向.问题是由你所描述的引起的.但是,如果我让设计处理验证或使用相同的代码,用户必须在更新帐户时提供密码,即使他们已登录.要解决此问题,我只是在验证中检查了rest_password_token:
def password_required?
# If resetting the password
return true if reset_password_token.present? && reset_password_period_valid?
# If the person already has a pass, only validate if they are updating pass
if !encrypted_password.blank?
password.present? || password_confirmation.present?
end
end
Run Code Online (Sandbox Code Playgroud)
*更新我刚刚更新了这个以确保密码令牌没有过期.
| 归档时间: |
|
| 查看次数: |
2731 次 |
| 最近记录: |