用巫术重置密码允许不匹配的确认

Resetting password with sorcery allows non-matching confirmation

我正在按照 sorcery tutorial 重置密码。我发现代码有效,即使我的密码确认不同。我的用户模型 有 attr_accessor :password, :password_confirmation.

相关代码来自 app/controllers/password_resets_controller.rb 的更新操作,即

  @user.password_confirmation = params[:user][:password_confirmation]
  if @user.change_password!(params[:user][:password])
    redirect_to(root_path, :notice => 'Password was successfully updated.')

使用 pry 可以确认 @user.password_confirmation returns 'reallywrong' 和 (params[:user][:password] returns 'foobar',所以确认与密码,但 @user.change_password!(params[:user][:password]) returns true.

这里有什么问题?

我没有在用户模型验证中将密码确认设置为 true。