Django基于cookie的会话数据存储在哪里?
问题描述:
我正在使用Django签名的cookie引擎来存储会话数据。我的设置是:Django基于cookie的会话数据存储在哪里?
SESSION_ENGINE = 'django.contrib.sessions.backends.signed_cookies'
SESSION_EXPIRE_AT_BROWSER_CLOSE = False
SESSION_COOKIE_NAME = 'sessionid'
它的工作原理应该如此。即使关闭浏览器和网络服务器,当我访问该网站时,我仍然登录。我可以看到sessionid被设置,但我似乎无法找到会话数据的存储位置。我在会话中存储整个用户对象。
答
的数据被存储在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,
)
会话数据作为序列化对象存储在数据库中。 – Jingo