【问题标题】:Django, setting cookieDjango,设置cookie
【发布时间】:2016-08-19 10:24:18
【问题描述】:

Django: Cookie set to expire in 30 seconds is actually expiring in 30 minutes?

hr = HttpResponse('ok')
hr.set_cookie('user_id', user_id, max_age=30)

https://stackoverflow.com/a/25179642/433570 确实

request.session[user_id] = True

两者都说我们正在设置cookie

这两者有什么区别?
我可以用request.session方法设置过期吗?

【问题讨论】:

    标签: django cookies


    【解决方案1】:

    简而言之,cookie 旨在存储在客户端,而会话存储在服务器端(除非您使用的是cookie based session)。

    用户可以从他们的浏览器中清除 http cookie,但他们不能对您服务器上的 会话 做任何事情。 Clearing sessions 取决于您和您的设置。您可以使用一些django settings 来确定他们的年龄,例如SESSION_COOKIE_AGE。对于 http cookie,可以将 attributes 设置为 max_ageexpires

    选择使用哪一种取决于您的要求;你要存储敏感数据吗,持久性是否重要等。

    参考资料:

    【讨论】:

    • 谢谢,有一个问题,即使用户不能在我的服务器上编辑会话,他可以删除浏览器cookie中指向服务器会话数据的会话密钥吗?对吗?
    • 是的,用户仍然可以清除浏览器 cookie,但如果它们存储在服务器端会话中,则无法操作这些值。
    猜你喜欢
    • 2017-06-12
    • 1970-01-01
    • 1970-01-01
    • 2021-06-22
    • 1970-01-01
    • 1970-01-01
    • 2018-03-12
    • 2017-05-05
    • 2020-12-05
    相关资源
    最近更新 更多