我使用yii2开发网站 在将用户保存到db之前,我输入了这样的密码:
$this->password = Yii::$app->security->generatePasswordHash($this->password);
当我使用此代码时:
Yii::$app->security->validatePassword("some string", $this->password);
我有错误:
无效参数 - yii \ base \ InvalidParamException 哈希无效。
有什么问题?
答案 0 :(得分:4)
我遇到了同样的问题。我意识到我的密码字段的字符容量对于哈希来说太短了,所以我把它从varchar(25)提升到了varchar(255)。
答案 1 :(得分:0)
确保您在用户表中具有与password_hash完全相同的列名,并从
更改您的代码Yii :: $ app-> security-> validatePassword(" some string",$ this-> password);
为:
Yii :: $ app-> security-> validatePassword("某些字符串",$ this-> password_hash);