2014-09-18 2 views
1

Я использую yii2 для разработки веб-сайта.
Перед пользователем Сохранить в БД, я encripted пароль так:Yii2 Исключение в ValidatePassword()

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

И когда я использую этот код:

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

У меня есть ошибка:

Invalid Parameter – yii\base\InvalidParamException Hash is invalid.

Что не так?

+0

https://github.com/yiisoft/yii2/blob/master/docs/guide/security-passwords.md lhs $ hash – Kshitiz

+0

Thx, я видел это! – Buboon

+0

Каково значение $ this-> password при генерации пароля хэша? Также проверьте две модели шаблонов LoginForm и User in common/models, как yii2 использует это для входа в систему – Kshitiz

ответ

3

Я столкнулся с тем же вопросом. Я понял, что количество символов в поле пароля было слишком коротким для хэша, поэтому я наткнулся на него с varchar (25) на varchar (255).

0

сделать sureyou имя столбца точно так, как password_hash в таблице пользователей и изменить свой код из

Yii :: $ app-> безопасности-> validatePassword ("некоторые строки", $ this-> пароль);

к:

Yii :: $ app-> безопасности-> validatePassword ("некоторые строки", $ this-> password_hash);

+0

Низкое качество как комментарий. – Billa

Смежные вопросы