I'm using FOSUserBundle in my application. I would like to do two things via HTTP services:
Check password. The service could look like this (the password wouldn't be encrypted):
public function checkPasswordValidity($userId, $password) { $user = $this->getDoctrine() ->getRepository('MyCompany\UserBundle\Entity\User') ->find($userId); if (specialFunction($user , $password)) echo 'Valid Password'; else echo 'Invalid Password'; }
Create a new user via another HTTP service. The parameters would be the username and the password.
Check password:
$encoder_service = $this->get('security.encoder_factory'); $encoder = $encoder_service->getEncoder($user); $encoded_pass = $encoder->encodePassword($password, $user->getSalt()); //then compare $user->getPassword() and $encoded_pass
Create a new user:
$userManager = $this->get('fos_user.user_manager'); $user = $userManager->createUser(); $user->setUsername($login); $user->setPlainPassword($pass); ... $userManager->updateUser($user);
For me works:
$encoder_service = $this->get('security.encoder_factory'); $encoder = $encoder_service->getEncoder($user); if ($encoder->isPasswordValid($user->getPassword(), $password, $user->getSalt()) {}
I did not test second question, but I think it is answered already.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With