사이트에 대해 "비밀번호 변경"기능을 설정하는 경우 보조 비밀번호 항목 ()을 사용하기 전에 비밀번호를 다시 입력해야합니다 ().Symfony 3에서 암호를 비교하는 방법 (Bcrypt hashes)?
입력 한 암호와 비교하여 사용자의 현재 암호 (은 Bcrypt을 사용하여 해시 됨)를 확인할 수 있어야합니다.
$currentPassword = $request->request->get('password');
$encoder = $this->container->get('security.password_encoder');
$encodedPassword = $encoder->encodePassword($user, $currentPassword);
if($encodedPassword == $user->getPassword()) { // these don't ever match.
// ...
}
encodePassword(...)
가 입력 된 암호의 다이제스트를 생성하지만, 저장된 암호 (평문이 같은이다)와 동일하지, 그래서 내 컨트롤러 액션에서
내가 가진 다른 소금이 사용되어서 불일치를 일으키고 있다고 생각합니다.
Bcrypt는 암호 다이제스트에 소금을 포함하므로 어디에도 저장하지 않습니다.
입력 한 일반 텍스트 비밀번호가 Symfony 3의 저장된 Bcrypt 다이제스트와 일치하는지 어떻게 확인할 수 있습니까?
FOSUserBundle
을 사용하고 있지 않습니다.
환상적. 매우 감사합니다. 나는 어떻게 든 문서에서 그것을 놓쳤다. – 121c
@Chris를 도와 드리겠습니다. 추신 : 때로는 클래스 메서드 (숏컷 단축키 사용)를 검사하여 미래에 유용하게 사용할 수 있습니다 :-) –