private function loginUserVK(UserResponseInterface $response)
 {
     $username = $response->getUsername();
     $realname = explode(' ', $response->getRealname());
     $firstName = $realname[1];
     $lastName = $realname[0];
     $email = $this->oAuthToken->getOAuthToken($response)->getRawToken()['email'];
     return ['loginField' => 'vkLogin', 'username' => $username, 'firstName' => $firstName, 'lastName' => $lastName, 'gender' => 'male', 'email' => $email];
 }
 /**
  * Loads the user by a given UserResponseInterface object.
  *
  * @param UserResponseInterface $response
  *
  * @return UserInterface
  *
  * @throws UsernameNotFoundException if the user is not found
  */
 public function loadUserByOAuthUserResponse(UserResponseInterface $response)
 {
     $em = $this->em;
     $type = $response->getResourceOwner()->getName();
     $user = $em->getRepository('AppBundle:User')->findOneBy(['email' => $response->getEmail()]);
     if ($user === null) {
         $user = new User();
         $user->setEmail($response->getEmail())->setFirstName($response->getFirstName() ?: $response->getUsername())->setLastName($response->getLastName() ?: $response->getRealname())->setIsActive(true);
         $em->persist($user);
         $em->flush();
     }
     if ($type === 'facebook') {
         $user->setFacebookToken($response->getAccessToken())->setFacebookId($response->getUsername());
     }
     if ($type === 'google') {
         $user->setGoogleToken($response->getAccessToken())->setGoogleId($response->getUsername());
     }
     $em->flush();
     return $user;
 }