【问题标题】:Hashed password overwriting when updating data更新数据时哈希密码覆盖
【发布时间】:2016-02-10 20:00:53
【问题描述】:

当您从 ActiveRecord 扩展您的类时,您是否使用过用户数据?我想更新用户时遇到问题。有 PasswordHash 属性。我在创建时使用了 beforeSave 函数,但我不知道我应该在更新操作中使用它吗?

public function beforeSave($insert)
{
    if (parent::beforeSave($insert)) {
        if($this->isNewRecord) {
            $this->created_at = time();
            $this->status = self::DEFAULT_STATUS;
            $this->generateAuthKey();
            $this->setPassword($this->PasswordHash);
            $this->RulesAccept=1;
            return true;
        } else {
            $this->setPassword($this->PasswordHash);
            return true;
        }
    } 
}

当我在输入中更新用户时,我可以看到散列密码,但是当我更改密码时,它没有散列这个密码。我修改了我的代码,但密码不断被覆盖。我应该如何在 ActiveRecord 中使用 passwordInput 和密码散列?

【问题讨论】:

    标签: php activerecord hash passwords yii2


    【解决方案1】:

    当我需要在 Yii2 中对密码进行哈希处理时,我使用以下代码:

     $password="YOUR PASSWORD";
     $hash = Yii::$app->getSecurity()->generatePasswordHash($password);
     die($hash);
    

    【讨论】:

    • 但我问我如何编辑这个密码,因为它总是覆盖我的旧密码
    • 我的函数setPassword和Your一样
    猜你喜欢
    • 2014-02-17
    • 1970-01-01
    • 2014-07-15
    • 2012-08-21
    • 2019-03-21
    • 2021-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多