在Symfony php中手动加密用户密码

时间:2017-06-06 18:29:11

标签: php symfony encryption passwords

我需要以Symfony的方式手动加密密码。

$user->setPlainPassword($password);
$userManager->updateUser($user);

这是保存用户密码的应用程序代码。但它显然是加密的(不像方法所说的那样简单)。

如何为给定密码手动获取相同的结果?

EDIT1:

问题是我想在用户控制器代码中手动验证用户。我有可读的用户名和密码作为参数。如果它们不存在于数据库中,我想返回401。

2 个答案:

答案 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);