2012-03-08 6 views
0

아무도 magento 고객 로그인이 작동하는 방법을 설명 할 수 있습니다.고객 암호 필드 변경 Magento

사실, 약간 이상한 상황이 있습니다. 기존 웹 사이트의 모든 고객을 새로운 Magento 웹 사이트로 복사해야합니다 (고객이 새 웹 사이트에 로그인 할 때 동일한 사용자 이름 암호를 사용하도록하십시오). 나는 패스워드가 이전 웹 사이트 (보통 php encrypt() 함수를 소금으로 사용)에서 어떻게 암호화되었는지는 알고 있지만 암호를 해독 할 수는 없다. 그래서 나는 고객 계정에 'oldpassword'라는 새로운 필드를 추가 할 것을 고려했다. (나는 고객 계좌에 새로운 필드를 만들기 위해 this 블로그를 따라 갔다). 내가 원하는 것은 고객을 가져올 때 'oldpassword'필드에 이전 암호화 된 비밀번호를 저장하는 것입니다. 고객이 로그인을 시도하면 이전 암호화 방법을 사용하여 oldpassword 필드와 암호가 일치해야합니다. 암호가 일치하면 기본 magento 암호가 생성되고 기본 암호 필드에 저장됩니다. 다음에 고객이 로그인을 시도 할 때 기본 비밀번호 필드가 비어 있지 않은지 확인한 다음 정상적으로 로그인해야합니다.

아직도 도움

나는 고객 -> advanceContoller을 덮어하지만 loginPostAction으로 만들기 위해 어떤 변화가 확실히 확실하지 않은

기다리고

을 추가했습니다.

답변

1

페이지로 이동하십시오 : 응용 프로그램/코드/코어/마법사/고객/모델/Customer.php

당신이 볼 수있는 기능 또한 public function authenticate($login, $password)

당신이

/** 
    * Validate password with salted hash 
    * 
    * @param string $password 
    * @return boolean 
    */ 
    public function validatePassword($password) 
    { 
     if (!($hash = $this->getPasswordHash())) { 
      return false; 
     } 
     return Mage::helper('core')->validateHash($password, $hash); 
    } 


    /** 
    * Encrypt password 
    * 
    * @param string $password 
    * @return string 
    */ 
    public function encryptPassword($password) 
    { 
     return Mage::helper('core')->encrypt($password); 
    } 

    /** 
    * Decrypt password 
    * 
    * @param string $password 
    * @return string 
    */ 
    public function decryptPassword($password) 
    { 
     return Mage::helper('core')->decrypt($password); 
    } 

를 볼 수 있습니다 이 파일을 확인하십시오.

+0

나는이 방법을 보았지만 이것을 보면 일반적인 암호 필드 대신 oldpassword 필드에 암호를 저장하는 방법을 알 수 없습니다. 임포트 고객은 모든 암호를 oldpassword로 가져 오길 원합니다. 로그인을 시도하면 oldpassword 필드와 일치합니다. – Hum