Как в yii2 залогиниться под юзером по ID?

В Yii2 для авторизации пользователя по его ID требуется выполнить следующие шаги:

1. Подключите класс Yii::$app->user->login к файлу контроллера, который будет отвечать за авторизацию, например, SiteController.

use yiiwebUser;

2. Создайте экземпляр классаYii::$app->user->login с помощью метода Yii::$app->user->identityClass, указав класс пользователя, который реализует интерфейс yiiwebIdentityInterface.

$userId = 123; // ID пользователя
$user = User::findIdentity($userId); // Получение экземпляра пользователя по ID
if ($user) {
    Yii::$app->user->login($user); // Авторизация пользователя
} else {
    // Обработка ошибки, если пользователя с таким ID нет в системе
}

3. Реализуйте метод findIdentity() в вашем классе пользователя, который должен вернуть экземпляр пользователя по его ID.

public static function findIdentity($id)
{
    return self::findOne($id);
}

Вышеуказанный код использует статический метод findOne() для поиска пользователя по его ID в базе данных. Этот метод должен быть реализован в вашей модели пользователя, например, User или любой другой класс, используемый вами для работы с пользователями.

4. После успешной авторизации пользователя Yii2 сохраняет данные пользователя в сессии. Вы можете получить доступ к данным пользователя, например, имени пользователя, с помощью Yii::$app->user->identity.

if (!Yii::$app->user->isGuest) {
    $username = Yii::$app->user->identity->username;
}

Обратите внимание, что после добавления кода вышеуказанный пользователь будет авторизован и его ID идентифицируется в системе. Вы должны реализовать соответствующие методы в вашей модели пользователя, такие как validatePassword(), чтобы проверить, правильный ли пароль указал пользователь, и getAuthKey(), чтобы получить ключ аутентификации пользователя для сохранения сеанса логина.