2017-10-22 2 views
1

Symfony 2.6에서 다음 방법을 사용하여 암호를 인코딩하고 있습니다. 암호가 성공적으로 암호화되어 DB에 저장됩니다.symfony security.password_encoder isPasswordValid가 비어 있습니다.

$encoder = $this->container->get('security.password_encoder'); 
$encodedPwd = $encoder->encodePassword($adminUser, $plainPassword); 

다음과 같이 내가 로그인 형태로 제공하는 사용자가 제공 한 비밀번호를 확인하려고 할 때 : 마지막 줄은 항상 암호를 검증 받고되지 않음을 의미하는 빈 반환

$adminUser = $this->getDoctrine()->getManager()->getRepository("AcmeUserBundle:AdminUser")->findOneBy(array('username' => $_username)); 
$_password = $request->request->get('_password'); 

$encoder = $this->container->get('security.password_encoder'); 
echo $encoder->isPasswordValid($adminUser, $_password)) 

. Symfony 문서에서이 문제를 얻었으며 비슷한 문제가있는 사람이 있는지 검색했지만 찾지 못했습니다. 아무도 통찰력을 제공 할 수 있습니까?

감사합니다. 샤라드

답변

0

좋아요. 해결책을 찾았습니다. 그것은 누군가가 비슷한 문제가 발생하는 데 도움이되기를 바랍니다.

암호를 인코딩, 나는 다음과 같은 일을 오전 :

$factory = $this->get('security.encoder_factory'); 
$encoder = $factory->getEncoder($user); 
echo $encoder->isPasswordValid($user->getPassword(), $_password, $user->getSalt()) 

암호를 암호화하는 동안, 내가 사용하지 않은 : 암호를 검증하기위한

$factory = $this->get('security.encoder_factory'); 
$encoder = $factory->getEncoder($user); 
$encodedPwd = $encoder->encodePassword($plainPassword, $user->getSalt()); 

을, 나는 다음과 같은 일을하고있다 소금,하지만 중요합니다, 그것은 모두 지금 작동합니다.

감사합니다. 샤라드

관련 문제