Jad*_*ber 22 passwords symfony fosuserbundle
我在我的应用程序中使用FOSUserBundle.我想通过HTTP服务做两件事:
检查密码.该服务可能如下所示(密码不会被加密):
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';
}
Run Code Online (Sandbox Code Playgroud)通过其他HTTP服务创建新用户.参数将是用户名和密码.
小智 63
检查密码:
$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
Run Code Online (Sandbox Code Playgroud)创建一个新用户:
$userManager = $this->get('fos_user.user_manager');
$user = $userManager->createUser();
$user->setUsername($login);
$user->setPlainPassword($pass);
...
$userManager->updateUser($user);
Run Code Online (Sandbox Code Playgroud)对我来说工作:
$encoder_service = $this->get('security.encoder_factory');
$encoder = $encoder_service->getEncoder($user);
if ($encoder->isPasswordValid($user->getPassword(), $password, $user->getSalt()) {}
Run Code Online (Sandbox Code Playgroud)
我没有测试第二个问题,但我认为它已经回答了.
| 归档时间: |
|
| 查看次数: |
19225 次 |
| 最近记录: |