문제

저는 www.dragondirectsales.com 사이트에 로그인하는 데 끊임없이 어려움을 겪고 있습니다.마젠토 1.9.1 사이트입니다.사이트에는 cas.dragondirectsales.com이라는 하위 도메인이 있습니다.현재 사용 중인 라이브 호스팅으로 사이트를 이전하기 전까지는 모든 것이 괜찮아 보였습니다.

그 이후로 우리는 프런트엔드(고객 로그인)와 백엔드(관리자) 모두에서 로그인과 관련된 문제를 해결해 왔습니다.로그인을 시도하면 오류 메시지 없이 해당 로그인 화면으로 다시 돌아갑니다.다시 말하지만 이는 고객 로그인에만 발생합니다.

이런 일이 발생할 때마다 저는 문제를 해결하기 위해 몇 시간을 소비하고 제가 생각할 수 있는 모든 테스트 사례에서 작동하도록 관리합니다.그리고 약 한 달 후 그 고객은 나에게 이메일을 보내서 그것이 다시 고장났다고 말하면서 관리 섹션에서 아무 것도 건드리지 않았다고 맹세했습니다.이 문제를 4번째로 해결해야 했는데 이전 변경 사항이 모두 그대로 남아 있어 이 문제의 원인이 무엇인지 알 수 없습니다.

지금은 프런트 엔드에 보안 URL을 사용하는 사이트가 있습니다.쿠키 경로가 비어 있습니다.쿠키 도메인은 .dragondirectsales.com입니다.저는 HTTP 전용을 사용하고 있습니다(iPad에는 이 문제가 해결된 별도의 로그인 문제가 있었습니다).쿠키 제한 모드가 아니요로 설정되어 있습니다.

이것이 마지막으로 작동했던 때와 지금 사이에 발생한 유일한 일은 확장 개발자가 부분 결제 확장에 대한 작업을 했다는 것인데, 그들의 작업이 이 문제와 관련이 있는지 완전히 확신할 수 없습니다.모듈 XML에서 확장 기능을 완전히 끌 수 있지만 문제는 계속 발생합니다.

어떤 도움이라도 진심으로 감사드립니다!

도움이 되었습니까?

해결책

나는 마침내 이에 대한 답을 찾았다고 믿습니다.

비결은 app/code/local/Mage/Customer/Model 디렉터리를 만들고 여기에 Session.php 파일을 복사하는 것이었습니다.Session.php 파일은 app/code/core/Mage/Customer/Model에서 찾을 수 있습니다.파일을 이동한 후 다음 섹션을 찾으세요.

    public function setCustomerAsLoggedIn($customer)
{
    $this->setCustomer($customer);
    $this->renewSession();
    Mage::dispatchEvent('customer_login', array('customer'=>$customer));
    return $this;
}

$this->renewSession( )을 주석 처리하세요.섹션을 참조하면 다음과 같습니다.

    public function setCustomerAsLoggedIn($customer)
{
    $this->setCustomer($customer);
    //$this->renewSession();
    Mage::dispatchEvent('customer_login', array('customer'=>$customer));
    return $this;
}

모든 로그인 쿠키를 삭제했는지 확인하세요.Windows의 Chrome, Firefox, IE와 iPad의 Safari에서 이것을 테스트했는데 모든 것이 매력적으로 작동했습니다.

답변에 대한 이 Stack Exchange 항목에 감사드립니다.불규칙한 쿠키 관련 로그인 문제

다른 팁

Magento가 보안 URL과 비보안 URL 모두에 동일한 쿠키 도메인을 사용하도록 강제해야 합니다.FireFox 또는 Chrome 브라우저의 개발자 도구를 사용하여 사이트 쿠키를 검사할 수 있습니다.이 솔루션은 Magento 1.9.2.4에서 테스트되었습니다.

세션 쿠키 관리 변수가 잘못 설정되지 않은 경우 Magento는 서로 다른 쿠키 도메인을 사용하여 두 개의 "프런트엔드" 쿠키를 생성할 수 있습니다.이는 일반적으로 HTTPS(예:SSL 활성화)를 보안 URL로 사용합니다.세션 쿠키 관리 구성에 대해 실행 가능한 값은 다음과 같습니다.

Cookie Life Time: 3600
Cookie Path: /
Cookie Domain : .mydomain.com (The dot prefix is important)
Use HTTP Only : No
Cookie Restriction Mode: No 
  1. 관리자 패널에서 시스템 -> 구성 -> 웹 -> 세션 쿠키 관리로 이동하세요.
  2. 위와 같이 쿠키 관리 구성을 설정하십시오.
  3. 구성을 저장하고 Magento 캐시를 지웁니다.
  4. MYSQL 데이터베이스에서 직접 변경한 경우 웹 서버를 다시 시작하여 PHP 변수를 지웁니다.
  5. magento 사이트와 관련된 기존 쿠키를 제거하려면 브라우저 캐시를 지우십시오.이건 중요하다.

보안 URL에 대해 중복 쿠키가 생성되는 것을 방지하려면 쿠키 도메인에 점 접두어를 사용하는 것이 중요합니다.

쿠키 도메인을 변경하면 Magento 백엔드에서 사용하는 "adminhtml" 쿠키에도 영향을 미칩니다.관리자 로그인 문제를 방지하려면 브라우저 캐시를 지우십시오.

웹 세션 쿠키 관리 구성을 올바르게 설정한 경우 다른 답변에 설명된 대로 핵심 코드를 변경할 필요가 없습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 magento.stackexchange
scroll top