/**
  * @param $hasCode
  * @return mixed
  */
 public function execute($request, $listener, $provider)
 {
     if (!$request) {
         return $this->getAuthorizationFirst($provider);
     }
     $user = $this->users->findByUserNameOrCreate($this->getSocialUser($provider));
     $this->auth->login($user, true);
     return $listener->userHasLoggedIn($user);
 }
 /**
  * @return boolean
  * @param string $user
  * @param string $pass
  */
 public function validateUserExternal($user, $pass)
 {
     return $this->_auth->validate($user, $pass);
 }