由于我无法解释的原因(NDA ......是的,我知道这听起来很粗略),我需要能够在正常的Symfony / FOSUserBundle登录流程之外将用户登录到我的系统。为了做到这一点,我需要知道FOSUserBundle如何将其盐应用于普通密码,我还没有找到它。因此,非常感谢正确方向的推动。
我的编码器目前设为:
security:
encoders:
FOS\UserBundle\Model\UserInterface: sha512
答案 0 :(得分:3)
您的问题无法得到准确答案,因为Symfony中不仅有一个密码编码器。它主要取决于您使用的配置,但为了给您直接指导,您应该查看位于Symfony\Component\Security\Core\Encoder
命名空间下的编码器并阅读代码。然后,您应该了解盐和密码是如何组合在一起的。
答案 1 :(得分:1)
您可能正在寻找:
http://symfony.com/doc/current/book/security.html#determining-the-hashed-password
$factory = $this->get('security.encoder_factory');
$user = new Acme\UserBundle\Entity\User();
$encoder = $factory->getEncoder($user);
$password = $encoder->encodePassword('plainpassword', $user->getSalt());
$user->setPassword($password);