Symfony2에 비밀번호 변경 기능을 추가하려고합니다. "현재 암호"필드, "새 암호"필드 및 "새 암호 확인"필드가 있으며 현재 초점을 맞추고있는 부분은 "현재 암호"필드의 유효성 검사입니다.Symfony2에서 비밀번호 확인
(덧붙여서,과 같은 것이 존재한다는 것을 알았지 만, 이미 공식적인 Symfony 문서를 기반으로하는 인증 시스템을 구축했으며, 지금 시간 내 모든 인증 코드를 다시 실행)
은 내가 내가 할 수있는 희망/상상하고있어 말한다 유효성 검사 콜백을 만드는 것입니다 이런 식으로 뭔가 :. 당신이 내 의견에서 볼 수 있듯이
// Entity/User.php
public function currentPasswordIsValid(ExecutionContext $context)
{
$currentPassword = $whatever; // whatever the user submitted as their current password
$factory = $this->get('security.encoder_factory'); // Getting the factory this way doesn't work in this context.
$encoder = $factory->getEncoder($this);
$encryptedCurrentPassword = $encoder->encodePassword($this->getPassword(), $this->getSalt());
if ($encyptedCurrentPassword != $this->getPassword() {
$context->addViolation('Current password is not valid', array(), null);
}
}
, 위의 코드가 작동하지 않는 몇 가지 이유가 있습니다. 나는 그 특정 쟁점들에 대한 구체적인 질문들을 게시 할 것이지만, 아마도 나는 잘못된 나무를 완전히 짖고있을 것입니다. 그래서 제가 전반적인 질문을하고 있습니다.
그럼 어떻게 사용자의 비밀번호를 확인할 수 있습니까?
알겠습니다. 고마워요. 그러나 실제 암호 유효성 검사 부분은 어떻습니까? 그게 내 질문에 묻고있는거야. 저는 이미 사용자 정의 유효성 검사기를 만드는 방법과 양식 필드를 만드는 방법을 알고 있습니다. –
예제를 추가했습니다. –
신난다. 고마워. 나는 그것을 시도 할 것이다. –