Ruby 在登录页面上显示设计最小密码长度错误
我正在使用Deviate的可验证模块,并且在Ruby 在登录页面上显示设计最小密码长度错误,ruby,ruby-on-rails-3,devise,Ruby,Ruby On Rails 3,Devise,我正在使用Deviate的可验证模块,并且在Deviate.rb中写入了config.password\u length=10..128,但它不会在登录时验证密码长度。如果密码不在指定的密码长度之间,则需要停止用户登录 请帮忙 提前谢谢 此选项不影响登录。它验证保存记录时用户的密码长度应在8到128个字符之间 更新 如果要阻止某人登录,需要覆盖active\u以进行身份验证? class User def active_for_authentication? super &&
Deviate.rb
中写入了config.password\u length=10..128,但它不会在登录时验证密码长度。如果密码不在指定的密码长度之间,则需要停止用户登录
请帮忙
提前谢谢 此选项不影响登录。它验证保存记录时用户的密码长度应在8到128个字符之间 更新 如果要阻止某人登录,需要覆盖
active\u以进行身份验证?
class User
def active_for_authentication?
super && password_is_long_enough?
end
def password_is_long_enough?
# logic to check password is long enough
end
end
但是,由于密码是散列的,您将不知道它有多长,因此我不确定这是否有助于您:(@jordelver..但是,如果我需要阻止用户登录,那么应该怎么做。如果用户的密码大小不正确,为什么要阻止用户登录?这样做没有意义,是吗?@jordelver..谢谢,但实际上我的应用程序中有一些帐户的密码长度小于10,但当前限制为10,因此,现在不希望这些帐户登录或使用应用程序意味着需要一种方法来阻止这些用户登录,并在登录过程中在登录页面上向他们显示错误消息。我已经更新了我的答案,但我不确定它是否有助于您:(实际上,密码在数据库中散列(
encrypted\u password
属性),但他们在登录表单上输入的密码(password
属性)不是。当然,它会与数据库中的encrypted\u password
进行哈希比较,但是password
属性本身应该保留纯文本密码,您可以检查其长度。