我需要以Symfony的方式手动加密密码。
$user->setPlainPassword($password);
$userManager->updateUser($user);
这是保存用户密码的应用程序代码。但它显然是加密的(不像方法所说的那样简单)。
如何为给定密码手动获取相同的结果?
EDIT1:
问题是我想在用户控制器代码中手动验证用户。我有可读的用户名和密码作为参数。如果它们不存在于数据库中,我想返回401。
答案 0 :(得分:5)
Symfony提供了一个有用的命令来编码密码,方法与它相同:
bin/console security:encode-password 'your_plain_password' 'AppBundle\Entity\YourUserClass'
答案 1 :(得分:5)
在您的控制器操作中尝试此操作:
$encoder = $this->get('security.encoder_factory')->getEncoder($userClass);
$encodedPassword = $encoder->encodePassword($plainPassword);