我怎么能有时需要密码,有时候不需要使用has_secure_password?

bev*_*anb 7 ruby-on-rails

我的应用程序允许人们使用密码或Facebook注册.

即使我从用户模型中删除了密码验证,我也会使用:password_digest => ["can't be blank"]用户模型.

我用has_secure_password.

我怎么能password_digest不要求?

jou*_*yer 7

最近的提交添加了一个选项哈希has_secure_password,允许跳过password_digest字段的验证.你这样使用它:

 has_secure_password :validations => false
Run Code Online (Sandbox Code Playgroud)

不幸的是,这不存在于3.2.13版本的rails中.请参阅/sf/answers/1169423181/


mea*_*gar 6

你不能.has_secure_password自动为您的模型添加两个验证器:

validates_confirmation_of :password
validates_presence_of     :password_digest
Run Code Online (Sandbox Code Playgroud)

相反,为password_digest没有密码的用户提供虚拟值:

user.password = user.password_confirmation = ""
user.password_digest = "facebook-authorized account"
Run Code Online (Sandbox Code Playgroud)

这是安全的,因为没有密码可以被散列以匹配该摘要.