Я использую yii2 для разработки веб-сайта.
Перед тем, как сохранить пользователя в db, я ввел в него пароль:
$this->password = Yii::$app->security->generatePasswordHash($this->password);
И когда я использую этот код:
Yii::$app->security->validatePassword("some string", $this->password);
У меня ошибка:
Недопустимый параметр – yii \ base \ InvalidParamException Hash недействителен.
- Yii 2 Запрос ActiveDataProvider с -> all () дает «Вызов функции-члена иFilterWhere () для массива»
- Yii2 - Как сделать AutoLoad для пользовательского класса?
- Yii2 - Вызов команды консоли Yii из другой команды консоли?
- композитор работает везде, кроме одного проекта
- Автоматическая упаковка в Kartik Gridview Datacolumn
Что не так?
Я столкнулся с тем же вопросом. Я понял, что количество символов в поле пароля было слишком коротким для хэша, поэтому я наткнулся на него с varchar (25) на varchar (255).
убедитесь, что у вас есть имя столбца точно так же, как password_hash в таблице пользователя, и измените свой код на
Yii :: $ app-> security-> validatePassword («некоторая строка», $ this-> password);
чтобы:
Yii :: $ app-> security-> validatePassword («некоторая строка», $ this-> password_hash);