[英]How to get distinct Django apps on same subdomain to share session cookie?
我們在同一個子域上部署了幾個Django應用程序。 一些高級用戶需要在這些應用程序之間跳轉。 我注意到每次他們在應用程序之間跳轉時,他們的會話cookie都會從Django收到一個新的會話ID。
除了在一個復雜的工作流程中,我不會使用Django會話表。 如果用戶在此工作流程中在應用程序之間跳轉,則會丟失會話並且必須重新開始。
我挖掘了Django會話代碼並發現:
django.conf.settings.SECRET_KEY
用於對每個請求的會話執行完整性檢查。 如果完整性檢查失敗,則會創建新會話。 實現這一點,我更改了每個應用程序中的密鑰以使用相同的值,認為這將允許完整性檢查通過並允許它們共享Django會話。 但是,它似乎沒有用。
有沒有辦法做到這一點? 我錯過了別的什么嗎?
提前致謝
我建議您將SESSION_COOKIE_NAME
設置為兩個應用的不同值。 您的用戶最初仍需要登錄兩次,但他們的會話不會發生沖突 - 如果他們登錄到應用A,然后是應用B,然后返回A,他們仍會進行A會話。
Django實例之間的共享會話可能不是一個好主意。 如果你想要某種單點登錄,請查看類似django-cas的內容。 你仍然會有2個會話(你應該這樣做),但用戶只會登錄一次。
我同意在Django實例之間共享會話可能不是一個好主意。 如果你真的想,你可以:
所有這一切,我還沒有嘗試過這一切,所以你可能仍然有麻煩!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.