/** * @param UserResponseInterface|ResourceResponse $response * * @return UserInterface */ protected function createUserByOAuthUserResponse(UserResponseInterface $response) { /** @var DoSUserInterface $user */ $user = $this->userFactory->createNew(); /** @var CustomerInterface $customer */ $customer = $this->customerFactory->createNew(); // set default values taken from OAuth sign-in provider account // todo: check security configuration provide by `fos....username_email` if (null === $response->getEmail()) { throw new AccountNoEmailException(); } // set default values taken from OAuth sign-in provider account if (null !== ($email = $response->getEmail())) { $customer->setEmail($email); } if (!$user->getUsername()) { $user->setUsername($response->getEmail() ?: $response->getNickname()); } // set random password to prevent issue with not nullable field & potential security hole $user->setPlainPassword(substr(sha1($response->getAccessToken()), 0, 10)); $user->setDisplayName($response->getNickname()); $user->setLocale($response->getLocale()); $user->setCustomer($customer); $user->confirmed(); $customer->setFirstName($response->getFirstName()); $customer->setLastName($response->getLastName()); $customer->setGender($response->getGender() ?: CustomerInterface::UNKNOWN_GENDER); $customer->setBirthday($response->getBirthday()); return $this->updateUserByOAuthUserResponse($user, $response); }
/** * {@inheritdoc} */ public function loadUserByOAuthUserResponse(UserResponseInterface $response) { $user = new WebHomeUser($response->getNickname(), null, $response->getFirstName(), $response->getLastName(), $response->getLocale(), $response->getAccessToken(), $response->getRefreshToken()); $user->initRolesAndApplications($response->getRoles()); return $user; }
protected function loadTwitterUser(UserResponseInterface $response) { $user = $this->userManager->createUser(); $user->setUsername($response->getUsername()); $user->setEmail($response->getEmail()); $user->setLastName($response->getRealName()); $user->setFirstName($response->getNickName()); $user->setType($response->getResourceOwner()->getName()); $user->setAccessToken($response->getAccessToken()); $user->setLocale($response->getLocale()); if (is_null($user->getLocale())) { $user->setLocale('fr'); } $user->setRoles(['ROLE_USER']); $user->setPassword(''); $user->setEnabled(true); $user->setCreatedAt(new \DateTime()); $user->setUpdatedAt(new \DateTime()); $this->userManager->updateUser($user); return $user; }