gpt4 book ai didi

authentication - minLength 数据验证不适用于 CakePHP 的 Auth 组件

转载 作者:行者123 更新时间:2023-12-01 09:33:50 27 4
gpt4 key购买 nike

假设我有一个用户注册并且我正在使用 Auth 组件(当然允许/user/register)。

问题是,如果我需要在模型中设置一个 minLength 验证规则,它不起作用,因为 Auth 组件对密码进行哈希处理,因此它总是超过我的 minlength 密码,即使它是空白,它也会通过。

我该如何解决这个问题?提前致谢!

最佳答案

本质上,您必须重命名密码字段(例如,重命名为“pw”)以防止 Auth 组件自动对其进行哈希处理。然后,如果密码通过验证规则,对其进行散列并将散列保存在 password 键下。这通常在 beforeFilter() 回调中作为 this article 完成。描述。

也可以在 Controller 中验证数据和散列密码。通常不提倡这种做法,但如果您刚刚开始使用 CakePHP,则可能更容易理解。

// this code would go after: if (!empty($this->data)  
// and before: $this->User->save($this->data)

// validate the data
$this->User->set($this->data);
if ($this->User->validates()) {

// hash the password
$password_hash = $this->Auth->password($this->data['User']['pw'];
$this->data['User']['password'] = $password_hash;
}

关于authentication - minLength 数据验证不适用于 CakePHP 的 Auth 组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2749192/

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