Я использую yii2 для разработки веб-сайта.
Прежде чем сохранить пользователя в БД, я записал пароль примерно так:
$this->password = Yii::$app->security->generatePasswordHash($this->password);
И когда я использую этот код:
Yii::$app->security->validatePassword("some string", $this->password);
У меня ошибка:
Неверный параметр — yii \ base \ InvalidParamException
Хэш недействителен.
Что случилось?
Я столкнулся с той же проблемой. Я понял, что символьная емкость моего поля пароля была слишком короткой для хеша, поэтому я поднял его с varchar (25) до varchar (255).
убедитесь, что у вас есть имя столбца в точности как password_hash в пользовательской таблице и измените свой код с
Yii :: $ app-> security-> validatePassword («некоторая строка», $ this-> пароль);
чтобы:
Yii :: $ app-> security-> validatePassword («некоторая строка», $ this-> password_hash);