2015-06-12 72 views
0

我想用這個函數request.session.cycle_key()來旋轉會話密鑰。在文檔中,說:cycle_key是否破壞以前的會話?

cycle_key()

創建一個新的會話密鑰,同時保留當前會話 data.django.contrib.auth.login()調用此方法以減輕 會話固定。

因此,不說前一屆會議是否被銷燬。然而,這個事實對於ajax應用程序是至關重要的,因爲可能有多個並行請求,因此一個請求可能會破壞(或不是?)以前的會話,而另一個請求嘗試訪問先前的(已經銷燬?)。會話。這可能會導致嚴重的應用問題。

回答

1

你可以很容易地看到它自己in the source code它。

+0

是否有可能重寫此函數,以便它不會破壞以前的會話?我該如何做到這一點(例如在一個視圖中,我使用'cycle_key'函數)? – Jacobian

+1

@Jacobian可能只是將當前會話後端進行子類化並設置['SESSION_ENGINE'](https://docs.djangoproject.com/en/1.7/ref/settings/#std:setting-SESSION_ENGINE)。但是如果你自己調用'cycle_key',爲什麼不直接調用一個私有幫助函數呢?但是,在任何一種情況下,您都需要注意更新的Django版本中的破壞情況:請注意'cycle_key'如何操作私有屬性'_session_cache'。 –