【问题标题】:Where Django's cookie based session data is stored?Django 基于 cookie 的会话数据存储在哪里?
【发布时间】:2017-08-26 02:49:27
【问题描述】:

我正在使用 Django 的签名 cookie 引擎来存储会话数据。我的设置是:

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

它可以正常工作。即使在我访问网站时关闭浏览器和 Web 服务器后,我仍然处于登录状态。我可以看到 sessionid 正在设置,但我似乎无法找到会话数据的存储位置。我将整个用户对象存储在会话中。

【问题讨论】:

  • 会话数据作为序列化对象存储在数据库中。

标签: python django python-3.x


【解决方案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,
    )

【讨论】:

    猜你喜欢
    • 2016-09-01
    • 1970-01-01
    • 2020-08-28
    • 2014-07-31
    • 1970-01-01
    • 1970-01-01
    • 2023-04-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多