gpt4 book ai didi

ruby-on-rails - 可选的密码确认 Authlogic

转载 作者:行者123 更新时间:2023-12-04 05:31:00 26 4
gpt4 key购买 nike

是否可以让 AuthLogic 验证密码确认(如果存在),否则忽略它?所以,如果我的参数如下,我希望失败:

{ user: { password: "abcd", password_confirmation: "defg" }

但是,如果参数如下所示,我希望成功:
{ user: { password: "abcdefgh" } }

谢谢!

最佳答案

这不是 AuthLogic 的问题,这段代码应该可以解决问题:

class User < ActiveRecord::Base
...

def update_without_password_confirmation(params={})
params.delete(:password) if params[:password_confirmation].blank?
params.delete(:password_confirmation) if params[:password].blank?

update_attributes(params)
end
end

然后在需要更新用户属性时从 Controller 调用此方法。如果用户没有指定密码确认,它将被忽略。
您可以使用其他几种技术来获得相同的效果,例如,使用 before_validation(:on => :update) 回调。

更新:如果您想完全跳过密码验证,acts_as_authentic 接受一个 block 来自定义其行为:
clas User < AR::Base
acts_as_authentic do |u|
u.require_password_confirmation=false # you can also use :if => some_condition
u.validate_password_field=false
end
end

这有点没有记录:P 检查这个文件:
https://github.com/binarylogic/authlogic/blob/master/lib/authlogic/acts_as_authentic/password.rb

关于ruby-on-rails - 可选的密码确认 Authlogic,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6181730/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com