2014-04-07 64 views
1

不知道這是否是Django特有的,但我的網站是我唯一經歷過的事情,我不認爲我在做什麼會話數據特別(只使用舊學校數據庫後端)。Django會話被放棄在第一個標籤點擊第二個鏈接時

當用戶登錄(在選項卡A中)並在同一個域上打開一個新選項卡(選項卡B)時,該cookie將轉到第二個選項卡。但是,如果用戶點擊標籤B中的鏈接,則刷新標籤A或點擊該標籤中的鏈接,他立即註銷。

我一直在這個問題上搜索了很多年,但沒有運氣,所以真的很感謝任何人的幫助。道歉,如果這是一個非常基本的事情。

MIDDLEWARE_CLASSES = (
    'django.middleware.cache.UpdateCacheMiddleware', 
    'bambu.sites.middleware.DomainRedirectMiddleware', 
    'nymbol.utils.middleware.RequireHTTPSMiddleware', 
    'django.middleware.common.CommonMiddleware', 
    'django.contrib.sessions.middleware.SessionMiddleware', 
    'django.middleware.locale.LocaleMiddleware', 
    'django.middleware.csrf.CsrfViewMiddleware', 
    'django.contrib.auth.middleware.AuthenticationMiddleware', 
    'django.contrib.messages.middleware.MessageMiddleware', 
    'maintenancemode.middleware.MaintenanceModeMiddleware', 
    'bambu.analytics.middleware.AnalyticsMiddleware', 
    'bambu.enqueue.middleware.EnqueueMiddleware', 
    'bambu.minidetect.middleware.MiniDetectMiddleware', 
    'nymbol.utils.middleware.UserPlanMiddleware', 
    'nymbol.manager.middleware.APILegacyMiddleware', 
    'django.middleware.cache.FetchFromCacheMiddleware' 
) 
  • bambu.sites.middleware.DomainRedirectMiddleware重定向訪問者正確的域,因爲該網站具有許多別名域的
  • nymbol.utils.middleware.RequireHTTPSMiddleware重定向的某些網址,用戶在同一的SSL版本)
  • maintenancemode.middleware.MaintenanceModeMiddleware顯示503消息當網站正在部署並推送後進行推送時
  • bambu.analytics.middleware.AnalyticsMiddleware排隊分析JavaScript跨請求
  • bambu.enqueue.middleware.EnqueueMiddleware允許的意見和模板標籤來排隊CSS和JavaScript
  • bambu.minidetect.middleware.MiniDetectMiddleware檢測瀏覽器是移動的還是不
  • nymbol.utils.middleware.UserPlanMiddleware店支付計劃的用戶是目前在request對象(如本支配整個網站的權限)
  • nymbol.manager.middleware.APILegacyMiddleware改變一個特定URL的URL模式到另一個(在這個問題上絕對沒有軸承)
+1

這當然不是一個常見的Django問題。它可能與您在標籤B中點擊刪除Cookie的特定鏈接有關嗎?如果使用其他瀏覽器時問題仍然存在,您是否嘗試過?你可以發佈你正在使用的中間件('MIDDLEWARE_CLASSES'在你的設置文件中)? – knbk

+0

謝謝@knbk;上面增加了細節 – Steadman

回答

1

原來我是有一點關係都沒有使用Django的問題,而是改爲由於一些不安全圖片網址bei通過TLS(SSL基本上)交付。

這可能是對問題的一個錯誤解釋,但似乎當瀏覽器(Chrome或Firefox)檢測到從安全URL引用的http:// URL時,它會放棄會話,因此下一次我點擊刷新或點擊另一個鏈接,我會被帶到登錄頁面,因爲我的cookie不再有效。

正如我所說的,可能並不完全如此,但這是非常實際的結果,並且糾正這些URL(當然這是最好的實踐)。

相關問題