示例#1
1
 public function authenticate()
 {
     if (!$this->service->isAuthenticated) {
         $this->errorCode = self::ERROR_NOT_AUTHENTICATED;
         return false;
     }
     $this->errorCode = self::ERROR_NONE;
     /**
      * проверяем профиль соцсети
      */
     $userlink = Userlink::model()->findByAttributes(array('serviceName' => $this->service->getServiceName(), 'serviceUsername' => $this->service->id));
     if (!$userlink) {
         /**
          * данный профиль соцсети не привязан, создаем связку
          */
         $userlink = new Userlink();
         $userlink->serviceUsername = $this->service->id;
         $userlink->serviceName = $this->service->getServiceName();
     }
     /**
      * Вычисляем наш userId
      */
     //Проверяем залогинены ли мы
     $userId = Yii::app()->user->id;
     //        var_dump($userId);
     //Если нет, то пробуем посмотреть в связку с соцсетью
     if (!$userId) {
         $userId = $userlink->userId;
     }
     //        var_dump($userId);
     //Если нет, то регистрируемся
     if (!$userId) {
         $user = $this->registration();
         $userId = $user->id;
     }
     //        var_dump($userId);
     if (!$userId) {
         throw new Exception('Чтото пошло не так');
     }
     /**
      * приязываем\перепривязываем соц сеть
      * Обновляем атрибуты соцсети
      */
     $userlink->userId = $userId;
     $userlink->params = ['attributes' => $this->service->attributes];
     $userlink->save();
     $this->_id = $userId;
     return !$this->errorCode;
 }
示例#2
1
 public function Userlinc()
 {
     $services = Userlink::model()->findAllByAttributes(array('userId' => Yii::app()->user->id));
     $model = array();
     foreach ($services as $service) {
         array_push($model, $service->serviceName);
     }
     return $model;
 }