Всем доброго дня!
Делаю crud user в бэкенде. Таблица user и регистрация/аутентификация стандартная из коробки. Проблема с авторизацией нового юзера. Попросту не пускает - пишет неверный логин/пароль.
crud сделал через gii, в модель User (в бэкенде) добавил поле и переменную password, в UserController (в бэкенде) в метод create () добавил генерацию password_hash и auth_key:
public function actionCreate()
{
$model = new User();
if ($model->load(Yii::$app->request->post()) && $model->validate()) {
$model->auth_key = Yii::$app->security->generateRandomString();
$model->password_hash = Yii::$app->security->generatePasswordHash($model->password);
$model->save();
return $this->redirect(['view', 'id' => $model->id]);
}
return $this->render('create', [
'model' => $model,
]);
}
В БД все нужные поля добавляет, юзера создает, но логинится не даёт. Замучился искать в чем проблема. Помогите, пожалуйста.
backend crud user
Re: backend crud user
а где код проверки пароля для пользователя?
Yii::$app->security->validatePassword($password, $this->password_hash);
Посмотрите:
https://github.com/yiisoft/yii2-app-adv ... s/User.php
https://github.com/yiisoft/yii2-app-adv ... inForm.php
Yii::$app->security->validatePassword($password, $this->password_hash);
Посмотрите:
https://github.com/yiisoft/yii2-app-adv ... s/User.php
https://github.com/yiisoft/yii2-app-adv ... inForm.php
Не желайте странного, и не будет у вас головной боли чтобы достичь этого странного.
Тем более что окажется что оно вам и не нужно было, странное это.
Тем более что окажется что оно вам и не нужно было, странное это.
Re: backend crud user
Возможно, User::findIdentity() не отрабатывает
Re: backend crud user
Всем спасибо! Разобрался. Оказалось активный статус юзера неверно проставлялся по умолчанию - вместо 10 ставил 1. Странно, конечно, что при входе с неактивным статусом выдают "неверный пароль/логин". Надо бы что-то адекватное выводить, - типа "ваш аккаунт заблокирован".
Re: backend crud user
Все в ваших руках, выводите.
Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа. Роберт Шекли.