2011-01-05 57 views
1

我想在閒置一段時間後將用戶註銷。這個問題(Logging users out of a Django site after N minutes of inactivity)有一個合理的尋找答案。在django中,request.session.set_expiry在閒置後如何用於註銷用戶?

但我想了解SESSION_COOKIE_AGE中request.session.set_expiry的區別。前者似乎在固定的時間段之後將用戶登出,而不管活動。如果SESSION_SAVE_EVERY_REQUEST爲假,這也不是SESSION_COOKIE_AGE所做的嗎?

回答

1

從我所知道的,request.session.set_expiry只是覆蓋該特定會話的SESSION_COOKIE_AGE設置。使用SESSION_SAVE_EVERY_REQUEST = False(默認值),不會有功能差異。

在這兩種情況下,會話活動是基於關機時會是最後一次修改(除非SESSION_SAVE_EVERY_REQUESTTrue,在這種情況下,它被保存在每次請求,所以它的有效修改每個請求)

一個例子您可能希望應用程序的某個部分中的用戶擁有較長的會話到期時間,因此您可以在與該應用程序相關的視圖中使用request.session.set_expiry並使用自定義值,然後在他們離開該特定部分時使用request.session.set_expiry(SESSION_COOKIE_AGE)重置它。