В телеграм чате новички часто спрашивают тех, кто поопытнее, как автоматически авторизовать пользователя сразу после его регистрации и сделать редирект на личный кабинет или дашборд.
Возьмем типичный метод регистрации пользователя:
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()