2017-12-12 14 views
0

Magento에서 만든 응용 프로그램에 대한 사용자 정의 로그인 양식을 작성했습니다. 지금까지는 모든 것이 잘 돌아갔다. 일부 고객은 로그인 프로세스 후 로그인 양식으로 다시 연결됩니다 (브라우저에 ) (자격 증명으로 로그인하려고하면 정상적으로 작동 함).Magento의 사용자 정의 로그인 양식으로 일부 고객으로 리디렉션

내 추측은 세션이었고 기록했습니다. 세션에서 올바른 방식으로 얻었습니다. 다른 고객 세션과 같은, 모든 확인을 보인다 - Mage_Customer_Model_Session Object :

if ($this->_getSession()->isLoggedIn()) { 
     $this->_redirect('*/*/'); 
     return; 
    } 

    $login = $this->getRequest()->getPost('login'); 
    $session = $this->_getSession(); 
    /* do some password stuff */ 
    // here here 
    $session->login($login['username'], $client_password); 
    $this->_loginPostRedirect(); 

내가 그들의 로그인을 시험하고 세션을 기록 :

로그인 젠토 로그인 양식을 기반으로, 간단합니다.

이러한 종류의 사용자에 대한 마지막 url var는 /customer/account/loginPost/입니다.

반복 : 일부 고객의 경우 모든 것이 정상적으로 작동합니다. 또한 문제가있는 사용자의 경우 앱에 직접 로그인 할 수 있습니다. 무슨 일이 일어날 수 있니? 세션을 파일에 저장 한 다음 DB에 저장했습니다. 동일한 결과가 나타납니다.

+0

리디렉션 전에 예외가 발생하거나 $ client_password 또는 다른 작업을 확인하면 문제가있을 수 있습니다. – hardayborlar

+0

사용자 및 패스가 정상적으로 작동합니다. 한 달에 한 번씩 코드를 작성하지 않고 그냥 일어났습니다. 쿠키 일 뿐이야. 전에는 예외가 발생하지 않습니다. –

+0

괜찮습니까? 이 브라우저는 구체적입니까? 다른 브라우저에서 로그인을 시도하거나 저장된 사용자 세션을 삭제하고 사용자가 다시 로그인하도록 시도 할 수 있습니까? – hardayborlar

답변

0

자, Magento를 하드 체크 한 후 해결책을 찾았습니다.

Magento 1.7 (및 이전 버전도 해당)의 경우 사용자 세션에서 문제가 발생합니다.

app\code\core\Mage\Customer\Model\Session.php 파일을 로컬 폴더 app\code\local\Mage\Customer\Model\Session.php에 복사하십시오.

public function login($username, $password)을 검색하고 $this->renewSession(); 행을 주석 처리하십시오.

Magento는 안전하지 않은 도메인의 SESSION ID와 보안 된 도메인의 다른 쿠키를 만들 수 있습니다. 그 후에 브라우저의 Back 버튼을 클릭하면 로그인이 제대로 생성 된 세션 ID를 찾을 수 없기 때문에 로그인 페이지로 리디렉션됩니다.