gpt4 book ai didi

ruby-on-rails - 最少 6 个字符的密码不起作用 [rails 4]

转载 作者:行者123 更新时间:2023-12-02 04:39:01 28 4
gpt4 key购买 nike

我正在阅读使用 rails 4 进行敏捷 Web 开发的书

在用户模型中我有一个不能少于6个字符的密码验证

validates :password_digest, length: {minimum: 6}

但实际上当我创建一个新用户时,它允许我用不到 6 个来完成它。有什么建议吗?

谢谢

最佳答案

简而言之 - 您正在验证错误的字段。将 :password_digest 替换为 :password。

validates :password, length: { minimum: 6 }

这里有更长的解释:我打开一本书并查看第 14 章(名为“任务 I:登录”)。看起来您的用户表包含列“name”、“password_digest”和“salt”。书中的示例描述了如何散列密码,将其与盐混合并将结果存储在数据库中。关键是 - 即使您从一个字母生成它,您的“password_digest”也会足够长。大家可以在irb中自己试试:

require 'digest'
Digest::SHA2.hexdigest('a') #=> "ca978112ca1bbdcafac231b39a2..."

因此,您不应该验证散列密码的长度。相反,您应该验证“密码”属性本身。

关于ruby-on-rails - 最少 6 个字符的密码不起作用 [rails 4],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21307515/

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