Example #1
0
 /**
  * Finds user by [[username]]
  *
  * @return User|null
  */
 public function getUser()
 {
     if ($this->_user === false) {
         $this->_user = User::findByIdentity($this->username);
     }
     return $this->_user;
 }
Example #2
0
 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');
 }