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; }