2011-09-15 5 views
4

양식 작성기로 간단한 등록 양식을 만들었습니다. 그것은 내가 문서화 및 기사에서 완전히 좋아하는 것처럼 보였지만 여전히 일반 텍스트가 아닌 데이터베이스에 저장할 암호를 만들 수 없습니다.Symfony 2 : 비밀번호 암호화 문제

여기 몇 가지 파일이 있습니다. 제발 도와주세요.

security.yml : http://pastebin.com/4FwBaZQK
한국 전기 \ UserBundle \ 엔티티 \ 사용자 : http://pastebin.com/iUGd4Cz1
한국 전기 \ SecurityBundke \ 컨트롤러 \ SecurityController : http://pastebin.com/wTVy2zE2

답변

15

체크 아웃 encoding user passwords에 대한 문서.

문서에서 코드는이 바인딩 된 후 사용자 개체에 적용되어야하지만 그것이 (보안 컨트롤러에 너무 라인 45와 46 사이) 지속 플러시되기 전에 :

$factory = $this->get('security.encoder_factory'); 
$user = new Acme\UserBundle\Entity\User(); 

$encoder = $factory->getEncoder($user); 
$password = $encoder->encodePassword($user->getPassword(), $user->getSalt()); 
$user->setPassword($password); 
+1

감사합니다 많이! 나는 더 아름다운 솔루션이 있어야한다고 생각했다 ... – asmisha

+0

엔티티가 유지되기 전에이 일을하기 위해 Doctrine 이벤트 리스너를 구현할 수 있다고 가정한다. – Problematic

+0

완전히 정확하지는 않지만 다음과 같이 알고 있습니다. http://pastebin.com/Fypj8L06 –