简体   繁体   English

ValidatePassword()中的Yii2异常

[英]Yii2 Exception in ValidatePassword()

I use yii2 for developing web site. 我使用yii2开发网站。
Before save user to db, I encripted password like this: 在将用户保存到数据库之前,我对密码进行了如下加密:

$this->password = Yii::$app->security->generatePasswordHash($this->password);

And when I use this code: 当我使用此代码时:

Yii::$app->security->validatePassword("some string", $this->password);

I have error: 我有错误:

Invalid Parameter – yii\\base\\InvalidParamException Hash is invalid. 无效的参数– yii \\ base \\ InvalidParamException哈希无效。

What is wrong? 怎么了?

I ran into the same issue. 我遇到了同样的问题。 I realized that my password field's character capacity was too short for the hash, so I bumped it up from varchar(25) to varchar(255). 我意识到密码字段的字符容量对于哈希来说太短了,所以我将其从varchar(25)提升到varchar(255)。

make sureyou have a column name exactly as password_hash in the user table and change your code from 确保您在用户表中具有与password_hash完全相同的列名,然后从

Yii::$app->security->validatePassword("some string", $this->password); Yii :: $ app-> security-> validatePassword(“ some string”,$ this-> password);

to: 至:

Yii::$app->security->validatePassword("some string", $this->password_hash); Yii :: $ app-> security-> validatePassword(“ some string”,$ this-> password_hash);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM