당신은 당신이 사용자 정보를 저장할 수있는 사용자 정보를 저장하는 데이터베이스를 사용하는 경우 : (. the Symfony security book에서) Symfony2 코드 구성 : db를 유지하기 전에 암호를 암호화하는 논리는 어디에 있습니까? 아래 그림과 같이
$factory = $this->get('security.encoder_factory');
$user = new Acme\UserBundle\Entity\User();
$encoder = $factory->getEncoder($user);
$password = $encoder->encodePassword('mypassword', $user->getSalt());
$user->setPassword($password);
는 그러나, 나는 재사용 가능한 사용자 양식을 만들려면 :
namespace App\Bundle\WebBundle\Form;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilder;
class UserType extends AbstractType
{
public function buildForm(FormBuilder $builder, array $options)
{
$builder
->add('username')
->add('password')
;
}
public function getName()
{
return 'app_bundle_webbundle_usertype';
}
}
을 및 제어부에서 폼을 사용
if ($request->getMethod() == 'POST') {
$form->bindRequest($request);
if ($form->isValid()) {
$em = $this->getDoctrine()->getEntityManager();
$em->persist($task);
$em->flush();
return $this->redirect($this->generateUrl('task_success'));
}
}
(here부터) 이 포스트의 시작 부분에 표시된 비밀번호를 해시하는 데 사용되는 코드 (및 소금을 생성하는 코드)를 재사용 가능하게 만들고 $ form-> bindRequest() 접근 방식과 호환되게하려면 어디에 배치해야합니까? 사용자 등록 양식 및 사용자 프로필 편집 양식 등이 필요한 경우