2012-04-18 64 views
7

我們有一個發佈雙Set-Cookie的Magento應用程序。以下是標題:Magento中的Double Set-Cookie,導致某些用戶登錄問題

HTTP/1.1 200 OK 
    Date: Wed, 18 Apr 2012 21:04:28 GMT 
    Server: Apache/2.2.3 (CentOS) 
    X-Powered-By: PHP/5.2.10 
    Set-Cookie: frontend=iti6c00cdm6cc79hfl1pl9pq52; expires=Wed, 18-Apr-2012 22:04:28 GMT; path=/ 
    Expires: Thu, 19 Nov 1981 08:52:00 GMT 
    Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 
    Pragma: no-cache 
    Set-Cookie: frontend=iti6c00cdm6cc79hfl1pl9pq52; expires=Wed, 18-Apr-2012 22:04:28 GMT; path=/; domain=**example.com** 
    Connection: close 
    Transfer-Encoding: chunked 
    Content-Type: text/html; charset=UTF-8 

在某些情況下,登錄後第二個cookie設置爲frontend = deleted。從我的閱讀看來,兩個前端= cookies不是一個「問題」,這是標準的Magento行爲。從我讀的規範中,第二個前端= cookie將覆蓋第一個,如果他們的範圍/規範是相同的。

任何想法,我們可以開始深入研究這個問題,看看爲什麼第二個前端= cookie不像第一個那樣?

Magento版本是Ver。的企業版。 1.9.0.0

相關問題

+0

用戶的行爲是什麼?重定向回登錄?你使用Lightspeed還是其他緩存? – 2012-04-19 04:28:59

+0

我有一個類似的問題,其中cookie設置了兩次。這似乎源於lightpeed.php在沒有時創建cookie的事實。這發生在Magento框架之外,導致cookie設置兩次。 – 2013-05-27 11:54:54

回答

0

你想覆蓋fronten餅乾......如果是這樣更好的嘗試首先破壞的cookie,然後重新設置使用的Magento方法

法師:: getModel( '芯/餅乾') - >集( '前端',$會話級> GETCUSTOMER() - >的getId(),100000 * 24 * 3600);

3

這種情況發生在會話驗證檢查失敗 - 該cookie將被用「刪除」清除值,並在過去的一個截止日期:

以下信息將通過Magento的用於驗證會話進行檢查:

  • 被連接到服務器
  • 的 「通過」 的客戶機IP地址的HTTP報頭
  • 的 「X-轉發,對於」 頁眉
  • 「用戶 - 代理」頁眉

如果用於相同的會話ID的請求時,這些信息的變化之一(或更多),則會話將被Discarted,則cookie將被的方式所描述的清除和服務器將發送一個重定向頭到主頁。

您可以通過轉到系統>配置>網頁來更改要在Magento管理員面板中驗證的信息。但你應該永遠不會關閉所有檢查,因爲這將允許會話劫持。