2017-08-25 65 views
0

我正在使用Django簽名的cookie引擎來存儲會話數據。我的設置是:Django基於cookie的會話數據存儲在哪裏?

SESSION_ENGINE = 'django.contrib.sessions.backends.signed_cookies' 
SESSION_EXPIRE_AT_BROWSER_CLOSE = False 
SESSION_COOKIE_NAME = 'sessionid' 

它的工作原理應該如此。即使關閉瀏覽器和網絡服務器,當我訪問該網站時,我仍然登錄。我可以看到sessionid被設置,但我似乎無法找到會話數據的存儲位置。我在會話中存儲整個用戶對象。

enter image description here

+0

會話數據作爲序列化對象存儲在數據庫中。 – Jingo

回答

1

的數據被存儲在sessionid本身。以下是來自簽名cookie後端的相關source code

def _get_session_key(self): 
    """ 
    Instead of generating a random string, generate a secure url-safe 
    base64-encoded string of data as our session key. 
    """ 
    return signing.dumps(
     self._session, compress=True, 
     salt='django.contrib.sessions.backends.signed_cookies', 
     serializer=self.serializer, 
    )