无法使用FOSUserBundle使用硬编码的加密密码进行记录

时间:2018-02-16 11:02:20

标签: php symfony fosuserbundle

我遇到硬编码的加密密码问题,无法使用FOSuserBundle正确登录我的应用程序。

这里是FOSUserBundle的原始加密密码:

    if ($encoder instanceof BCryptPasswordEncoder) {
        $user->setSalt(null);
    } else {
        $salt = rtrim(str_replace('+', '.', base64_encode(random_bytes(32))), '=');
        $user->setSalt($salt);
    }

    $hashedPassword = $encoder->encodePassword($plainPassword, $user->getSalt());
    $user->setPassword($hashedPassword);
    $user->eraseCredentials();

这是我的:

 $encoder = $this->container->get('security.encoder_factory')->getEncoder($user);

        $salt = rtrim(str_replace('+', '.', base64_encode(random_bytes(32))), '=');
        $user->setSalt($salt);

        $hashedPassword = $encoder->encodePassword($request->get('plainPassword'), $user->getSalt());
        $user->setPassword($hashedPassword);

        $this->getDoctrine()->getManager()->persist($user);
        $this->getDoctrine()->getManager()->flush();

当我登出时,我无法使用实际新创建的密码登录...

我不知道它是如何工作的。

有没有人有想法?

提前

0 个答案:

没有答案