2017-05-05 66 views
3

我有一個使用Flask-Sessions來管理會話的Flask應用程序。排除Flask會話超時的端點

flask.permanent_session_lifetime = timedelta(minutes=30)

活動的30分鐘後,會話將被終止,我的用戶將不得不重新登錄,繼續使用應用程序。

但是,我想從此會話超時行爲中排除特定的URL端點。我的意思是,我有一個持續的輪詢,發生在我的應用程序中,Web客戶端以30秒爲間隔調用GET /狀態端點。每30秒鐘頁面要求更新服務器任務的狀態,並更新進度條等。

由於上述GET /狀態調用不斷到達,用戶可能完全脫離計算機,會話永遠不會超時,因爲GET/status調用會持續輪詢。

有沒有一種方法可以在超時行爲中排除此端點,例如調用GET /狀態請勿延長當前用戶會話的使用期限?如果不是,這種情況下推薦的方法是什麼?我寧願不必在此應用程序中實現我自己的Session版本。

回答

2

你必須選擇:

  1. SecureCookieSessionInterface和覆蓋should_set_cookie方法
  2. 寄存器after_request處理程序,並有去除 '設置Cookie' 頭,如果URL匹配
+0

對於任何人讀這篇文章,你會想要第一個解決方案。如果Flask Sessions打算添加Set-Cookie頭,那麼您將無法在'after_request'處理程序中刪除該頭。 –

+0

在第二個解決方案中,您將不得不返回新的響應,這將是原始響應的副本,除了這一個標題。在我看來這是太多的努力,但有這種可能性:) –