2017-11-06 6 views
-1

을 받고 실패.젠토 고객의 로그인 암호 해시

지금까지 나는 고객 모델입니다. 그러나 getPasswordHash는 일반적인 방법으로 보인다

public function validatePassword($password) 
{ 
    $hash = $this->getPasswordHash(); 
    if (!$hash) { 
     return false; 
} 

제안은 감사합니다 (그리고 useto 반환 데시벨 값은, 고객 데이터는하지만 존재). 쿠키를 정리하고 새로운 세션이 될 때

UPDATE

문제가 해결 일시적된다. 그러나 그것은 계속 나타나고

+0

여기에 적절한 대답을 제시하기에 충분한 컨텍스트가 없습니다. 해결하려는 로그인 문제로 질문을 업데이트 할 수 있습니까? – Joe

+0

또한 validatePassword() 메소드의 맨 아래에'return Mage :: helper ('core') -> validateHash ($ password, $ hash);가 있어야합니다. (그 부분을 복사하는 것을 잊었습니까?) – Joe

+0

오류 메시지는 일반적인 "잘못된 사용자 이름 또는 암호"입니다. validatePassword 메서드는 부분적으로 복사되어 어디에 있는지 표시합니다. 이 시점에서 나는 빈 $ 해시 및 언급 한 getter에 대한 단서가별로 없습니다. –

답변

0

getPasswordHash()은 데이터베이스에서 해시 값을 반환합니다.

실행하여 DB에서이 쿼리는 :

select e.email, v.value from customer_entity e join customer_entity_varchar v on e.entity_id=v.entity_id join eav_attribute a on v.attribute_id=a.attribute_id where attribute_code='password_hash' and e.email='customer_email_here'; 

그것은 주어진 고객의 이메일에 대한 해시 값을 표시해야합니다. 거기에 아무것도 없다면 문제는 데이터베이스에 있습니다.

데이터베이스에 해시 값이 표시되면 설정과 충돌하는 확장명 일 수 있습니다. 어떤 확장 프로그램이 Mage\Customer의 클래스를 오버라이드하고 있는지 확인하고 그러한 충돌을 해결할 것입니다. app\code\local\Mage의 코드를 수정하여 기본 동작을 변경했을 수도 있습니다.

+0

쿼리가 올바른 결과를 반환했습니다. 이전에 말했듯이 데이터가 있습니다. 내 코드/로컬 깨끗하게 유지. 또한 xml에서 발견 된 고객 모델에 대한 재 작성도 없습니다. 어쨌든 고마워. –