我遇到硬编码的加密密码问题,无法使用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();
当我登出时,我无法使用实际新创建的密码登录...
我不知道它是如何工作的。
有没有人有想法?
提前