4
我有一個網站,其中包含針對不同類型用戶的多個規則集。 其中一個規則(權限)取決於會話到期。基於Django密鑰的會話過期
例如,當瀏覽器關閉時,必須刷新未認證用戶的會話,但認證用戶的會話應持續存在一段時間。
此外,對於經過身份驗證的用戶,會話中的某些密鑰可能在瀏覽器關閉時被刪除,但其他應該保持活動狀態。
如何在Django中實現此基於密鑰的會話過期?
我有一個網站,其中包含針對不同類型用戶的多個規則集。 其中一個規則(權限)取決於會話到期。基於Django密鑰的會話過期
例如,當瀏覽器關閉時,必須刷新未認證用戶的會話,但認證用戶的會話應持續存在一段時間。
此外,對於經過身份驗證的用戶,會話中的某些密鑰可能在瀏覽器關閉時被刪除,但其他應該保持活動狀態。
如何在Django中實現此基於密鑰的會話過期?
您可以通過request.session
上的set_expiry
方法來做到這一點。該方法採用秒數的整數使會話過期,datetime
或timedelta
會話應該過期,整數0表示會話應在瀏覽器關閉時間過期或None
表示會話應該回退到默認的超時策略。
您應該能夠編寫一段中間件,用於評估會話過期的標準,然後在處理請求之前在會話上調用set_expiry
。
我看了一遍文檔。在一段時間之後,或者在瀏覽器關閉之後,很容易讓某個特定的會話過期,但我無法看到每個關鍵點都能做到的方式。希望別人可以給你一個答案,但是你可能會被迫創建自己的實現'SessionBase'的按鍵到期。 – Gareth