我正在阅读带有Rails 4的敏捷Web开发书
在用户模型中,我具有不能少于6个字符的密码验证
validates :password_digest, length: {minimum: 6}
但是实际上,当我创建一个新用户时,它允许我使用少于6个的用户。有什么建议吗?
谢谢
简而言之-您正在验证错误的字段。用:password替换:password_digest。
validates :password, length: { minimum: 6 }
此处的解释更长一些:我已经打开一本书,并看了第14章(名为“任务I:登录”)。看起来您的用户表带有“名称”,“ password_digest”和“盐”列。书中的样本描述了如何对密码进行哈希处理,将其与盐混合以及将结果存储在数据库中。关键是-即使您从一个字母生成此密码,您的“ password_digest”也足够长。您可以在irb中自己尝试:
require 'digest'
Digest::SHA2.hexdigest('a') #=> "ca978112ca1bbdcafac231b39a2..."
因此,您不应该验证哈希密码的长度。相反,您应该验证“密码”属性本身。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句