2017-03-26 32 views
2

django應用中,我試圖在用戶登錄時將匿名用戶的會話與該用戶的新登錄會話相關聯。換句話說,登錄時我想找出該用戶存在的會話密鑰,直到他們登錄。Django:在登錄時獲取用戶以前的匿名會話密鑰

我知道我無法從已經過期的會話中獲得所有以前的匿名用途,我只對此感興趣在用戶使用的剛到期的session_key中,直到他們登錄並調用cycle_key()

我正在做一些類似於How to lookup django session for a particular user?的東西,但這隻給我活動會話密鑰,我也想訪問以前的。

回答

1

,你所擁有的最好的辦法是重寫默認SessionMiddleware您的需求https://github.com/django/django/blob/master/django/contrib/sessions/middleware.py

看到設置cookie的最後一部分。

+1

我最終爲此寫了自己的中間件,它捕獲'process_request()'中的鍵(如果有)並將其添加到請求對象中,然後將保存的鍵與'process_response中的請求對象中的鍵進行比較()'並相應地處理它。謝謝! – seawolf

+0

@seawolf你有沒有機會分享你的中間潔具? – radzia2

+1

這就是我想出來的,並不出色,我不確定這正是我想要的,但它的確有訣竅:https://github.com/seawolf42/django-autometrics/blob/master/autometrics_nonrel/middleware。 PY – seawolf

相關問題