0

我正在使用带有设计的 rails 3.2.x 来验证用户密码。在我更新的一页上,允许用户更新他的密码。但即使提供了错误的当前密码,用户也可以更新他/她的密码。

rails 控制台也发生了同样的事情。

@user = user.update_attributes :password => "some_password"

更新@user 的密码。

如何摆脱这个麻烦?

更新:我可以使用错误的 current_password 参数将用户密码更新为 update_attributes 方法,例如,

@user = user.update_attributes :password => "some_password", :current_password => "wrong_password"
4

3 回答 3

1

弄清楚了,

而不是使用

 user.update_attributes(params[:user])

一个可以使用

user.update_with_password(params[:user])

这将确保当前密码有效。

于 2012-12-01T05:44:58.450 回答
0

也许你需要使用

before_filter :authenticate_user!

于 2012-10-22T11:00:39.793 回答
0

可能是您需要添加:password => "some_password":confirm_password => "some_password" 或者您必须添加控制器:before_filter => authenticate_user!.

于 2012-10-22T11:17:49.007 回答