Magento 휴대폰 번호와 비밀번호로 로그인 안내

이전 글은 Magento1.5에 회원 등록 필드를 추가했습니다. Magneto에 등록할 때 모바일 필드, 즉 핸드폰 번호를 추가했습니다. 여기에 등록할 때 입력한 핸드폰 번호와 비밀번호로 시스템에 로그인하는 방법을 설명합니다. 이메일로만 로그인할 수 있는 것이 아닙니다.
핸드폰 번호를 가지고 로그인해야 하기 때문에 먼저 한 가지 명확히 해야 한다. 바로 이 핸드폰 번호 필드가 시스템에서 유일해야 한다는 것이다. 즉, 두 개의 핸드폰 번호와 같은 회원이 존재할 수 없기 때문에 먼저 등록할 때 기입한 핸드폰 번호가 이미 등록되었는지 확인해야 한다.파일 app\code\core\Mage\Customer\controllers\AddressController를 엽니다.php,createPostAction을 찾으면 수정 Action에 인증 코드를 추가합니다. 아래를 참고하십시오.
$mobile = $this->getRequest()->getParam('mobile', false);
        $mobilestatus = Mage::getModel('customer/customer')->getCollection()
        ->addAttributeToFilter('mobile', $mobile)
        ->getFirstItem()
        ->load();
        if($mobilestatus->getData('mobile')){  
               $session->addError(' ');
               $this->_redirect('*/*/create');
               return;
        }

그리고 로그인은 등록된 핸드폰 번호와 비밀번호를 사용하여 로그인할 수 있도록 하는 것이다. 사실 원리는 매우 간단하다. 이메일과 핸드폰 번호는 회원들에게 유일한 것이기 때문에 핸드폰 번호는 반드시 회원에 대응하는 이메일을 찾을 수 있다. 프로그램에서 실현되면 핸드폰 번호로 이메일을 제거한 다음에 시스템의 자유 로그인 절차에 따라 eamil과 비밀번호로 로그인하는 시스템을 사용한다.같은 파일에서loginPostAction을 찾았습니다. 새 코드는 다음과 같습니다.
if (!empty($login['username']) && !empty($login['password'])) {
                try {
                                    // 
                    $username = $login['username'];
                    if(!strstr($username,'@')){
                        $mobile = Mage::getModel('customer/customer')->getCollection()
                        ->addAttributeToFilter('mobile', $username)
                        ->getFirstItem()
                        ->load();
                        if($mobile->getData('email')){
                            $email =  $mobile->getData('email');
                            $login['username']  = $email;
                        }
                    }
                    $session->login($login['username'], $login['password']);	

이로써 우리는 이미 핸드폰 번호와 비밀번호를 사용하여 시스템에 로그인할 수 있게 되었다. 물론 이것은 첫 번째 단계일 뿐이다. 다음에 문제가 발생할 수 있으니 자세히 말하지 말고 관심 있는 사람은 스스로 시도하고 보완하자.

좋은 웹페이지 즐겨찾기