Задать вопрос
@teodor7teodor7

Yii2 как сделать аутентификацию из стандартного?

Добрый день. Подскажите как сделать аутентификацию, читаю документацию, смотрю видео, но немного не понимаю. Нужно изменить стандартный набор что бы подключалось к бд, и по name и password перебрасывала на другую страницу. Вот у нас есть контролер с методом
.....
 public function actionLogin()
    {
        if (!\Yii::$app->user->isGuest) {
            return $this->render('login');
        }

        $model = new LoginForm();
        if ($model->load(Yii::$app->request->post()) && $model->login()) {
        return $this->redirect(['users/index']);
        }
        return $this->render('login', [
            'model' => $model,
        ]);
    }

....


То есть есть редирект на другую страницу.

Столкнулся с проблемой. Не пойму как связать с Бд
вот стандартная модель LoginForm включил туда базу
... public static function tableName()
    {
        return 'users';
    }...

Потом проверяю в этой же модели и логиню...
public function login()
    {



        return Yii::$app->user->login($this->getUser(), $this->rememberMe ? 3600*24*30 : 0);

    }public function getUser()
    {
        if ($this->_user === false) {$identity = User::findOne($this->username);

        }

        return $this->_user;
    }

Как это сделать?
  • Вопрос задан
  • 280 просмотров
Подписаться 1 Оценить Комментировать
Решения вопроса 1
@karminski
Senior React.JS Developer
Вероятно, Вы это ищите:
public function login()
    {
        if (!$this->validate()) {
            return false;
        }

        $attributes = [
            'email' => $this->username,
            'active' => true
        ];

        /* @var User $user */
        if (($user = User::findOne($attributes)) && User::validatePassword($user, $this->password)) {
            return \Yii::$app->user->login($user, $this->rememberMe ? self::$timeout : 0);
        }

        $this->addError('username', \Yii::t('models/LoginForm', 'Wrong E-Mail or password'));

        return false;
    }
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
glamurchik
@glamurchik
а зачем ее делать, если она и так работает?
нужно подключить настройки базы
и сделать yii/migrate
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы