Yii2: Регистрация пользователя и автоматическая авторизация

В телеграм чате новички часто спрашивают тех, кто поопытнее, как автоматически авторизовать пользователя сразу после его регистрации и сделать редирект на личный кабинет или дашборд.

Возьмем типичный метод регистрации пользователя:

public function actionSignup()
{
    $model = new SignupForm();
    if ($model->load(Yii::$app->request->post())) {
        if ($user = $model->signup()) {
           return $this->goHome();
        }
    }

    return $this->render('signup', [
        'model' => $model,
    ]);
}

Все что нам потребуется, это обернуть редирект в следующую конструкцию:

if (Yii::$app->getUser()->login($user)) {
     return $this->goHome();
}

Система авторизует и перенаправит на домашнюю страницу. Можно указать любую другую с использованием метода redirect()

Рейтинг
( Пока оценок нет )
Максим Гречушников/ автор статьи
Мне 40 лет, и больше половины жизни я занимаюсь разработкой. За это время я работал с корпоративными системами, highload-проектами, интеграциями, платежными решениями, внутренними платформами и legacy-кодом, который пережил не одного разработчика. Некоторые системы, кажется, переживут и нас. Моя специализация — PHP, Laravel, backend-архитектура, DDD, тестирование, рефакторинг и техническое лидерство. Мне интересны задачи, где нужно соединить код, бизнес, данные, процессы и здравый смысл. Последние годы я много работаю с LLM и AI-инструментами: использую их для проектирования, анализа кода, документации, тестов, ревью, работы с legacy и построения инженерных процессов. Для меня LLM — это не замена разработчику, а усилитель для тех, кто умеет думать системно. В блоге я пишу о Laravel, PHP, архитектуре, тестировании, инженерной практике, управлении разработкой и реальном применении AI в работе программиста.
Понравилась статья? Поделиться с друзьями: