/** * Finds user by [[username]] * * @return User|null */ public function getUser() { if ($this->_user === false) { $this->_user = User::findByIdentity($this->username); } return $this->_user; }
public function actionLogin() { $this->layout = 'blank'; if (array_key_exists('token', $_POST)) { // перенаправление назад после входа через аккаунт $s = file_get_contents('http://ulogin.ru/token.php?token=' . $_POST['token'] . '&host=' . $_SERVER['HTTP_HOST']); $userData = json_decode($s, true); $identity = $userData['identity']; $user = User::findByIdentity($identity); if (!$user) { $user = new User(); $user->attributes = $userData; if (!$user->save()) { throw new Exception('Не удалось создать пользователя в системе'); } } if (!Yii::$app->user->login($user)) { throw new Exception('Не удалось авторизироваться в системе'); } } if (!Yii::$app->user->isGuest) { return $this->goHome(); } return $this->render('login'); }