/** * Attach OAuth sign-in provider account to existing user * * @param FOSUserInterface $user * @param UserResponseInterface $response * * @return FOSUserInterface */ protected function updateUserByOAuthUserResponse(FOSUserInterface $user, UserResponseInterface $response) { $providerName = $response->getResourceOwner()->getName(); $providerNameSetter = 'set' . ucfirst($providerName) . 'Id'; $user->{$providerNameSetter}($response->getUsername()); if (!$user->getPassword()) { // generate unique token $secret = md5(uniqid(rand(), true)); $user->setPassword($secret); } return $user; }
/** * Attach OAuth sign-in provider account to existing user * * @param FOSUserInterface $user * @param UserResponseInterface $response * * @return FOSUserInterface */ protected function updateUserByOAuthUserResponse(FOSUserInterface $user, UserResponseInterface $response) { $providerName = $response->getResourceOwner()->getName(); $providerNameSetter = 'set' . ucfirst($providerName) . 'Id'; $user->{$providerNameSetter}($response->getUsername()); /** Is for accept OAuth connexion without password **/ if (!$user->getPassword()) { $secret = md5(uniqid(rand(), true)); $user->setPassword($secret); } return $user; }
public function updateUser(UserInterface $user, $insertInDb = false) { if ($this->user) { $user->setPassword($this->user->getPassword()); $user->setId($this->user->get('id')); $this->updateCanonicalFields($user); } if ($user->has('id')) { $result = $this->pommModel->updateOne($user, ['salt', 'password', 'username_canonical', 'email_canonical']); } else { $this->updateCanonicalFields($user); $this->updatePassword($user); $this->pommModel->insertOne($user); $this->user = $user; } }
/** * {@inheritdoc} */ public function updatePassword(UserInterface $user) { if (0 !== strlen($password = $user->getPlainPassword())) { $passwordDigesta = md5($user->getUsernameCanonical() . ':SabreDAV:' . $password); $salt = $user->getSalt(); $salted = $password . '{' . $salt . '}'; $digest = hash('sha512', $salted, true); for ($i = 1; $i < 5000; $i++) { $digest = hash('sha512', $digest . $salted, true); } $encodedPassword = base64_encode($digest); $user->setPassword($encodedPassword); $user->setPasswordDigesta($passwordDigesta); $user->eraseCredentials(); } }