после создания или изменения пароля Пользователь, у меня есть ошибка входа «Неверное имя пользователя или пароль» в Yii2
логин с пользователем «admin» – это работа (я делаю администратора пользователя с actionCreate1)
auth_key: kYm0pvYAXY4IzuV7eYgGgtjSqoxxMNUL password: $2y$13$QqsbMW3ErXwWOPad3abDYOPzh5XLwuEvQKBhZGEEDoT0Av5l0bE2S
но я делаю пользователь или редактирую пароль, на странице входа у меня ошибка: «Неверное имя пользователя или пароль»
Я думаю, проблема с beforeSave в Model USER
Таблица пользователей:
id int auth_key text username text password text
actionCreate: это не работа
public function actionCreate() { $model = new User(); if ($model->load(Yii::$app->request->post())) { if($model->save()) { $model->img = UploadedFile::getInstance($model, 'img'); if($model->img !== null) $model->upload('img',$model->id); $model->save(); } return $this->redirect(['view', 'id' => $model->id]); } else { return $this->render('create', [ 'model' => $model, ]); } }
actionCreate1: это ХОРОШАЯ РАБОТА
public function actionCreate() { $model = new User(); if ($model->load(Yii::$app->request->post())) { $model->username = Yii::$app->request->post('User')['username']; $model->password = Yii::$app->request->post('User')['password']; $model->save(); return $this->redirect(['view', 'id' => $model->id]); } else { return $this->render('create', [ 'model' => $model, ]); } }
Пользователь модели:
public function beforeSave($insert) { if($this->password) { $this->setPassword($this->password); } if($insert) { $this->generateAuthKey(); } return parent::beforeSave($insert); } public function setPassword($password) { $this->password = Yii::$app->security->generatePasswordHash($password); } public function generateAuthKey() { $this->auth_key = Yii::$app->security->generateRandomString(); } /** * @param $password * @return bool */ public function validatePassword($password) { return Yii::$app->security->validatePassword($password, $this->password); } /** * @inheritdoc */ public static function findIdentity($id) { return static::findOne([ 'id' => $id ]); } public static function findIdentityByAccessToken($token, $type = null) {} /** * @param $username * @return null|static */ public static function findByUsername($username) { return static::findOne([ 'username' => $username, ]); } /** * @inheritdoc */ public function getId() { return $this->id; } /** * @inheritdoc */ public function getAuthKey() { return $this->auth_key; } /** * @inheritdoc */ public function validateAuthKey($authKey) { return $this->auth_key === $authKey; }