我想在未来的几个小时内设置一个过期时间的Cookie
已经存在一个显示如何设置cookie的问题:
How do you get and set cookies in Zope and Plone?
...但我没有找到如何以“正确的方式”使用Zope生成RFC 822时间戳的示例。看起来其他框架在日期时间内部生成时间戳。
也可以让浏览器关闭时到期的cookie?这个没有失效日期吗?
答案 0 :(得分:3)
您可以通过在Cookie上设置expires属性,将Cookie设置为将来某个日期到期。这应该是使用Python标准库中formatdate
模块的email.Utils
生成的RFC822值。
import time
from email.Utils import formatdate
expiration_seconds = time.time() + (5*60*60) # 5 hours from now
expires = formatdate(expiration_seconds, usegmt=True)
response.setCookie('cookie_name', 'value', path='/', expires=expires)
(Internet Explorer不支持cookie规范建议的max-age属性。)
如果您想要在关闭浏览器时清除cookie,请不要设置过期值。
请注意。始终设置cookie有效的路径或仅在您设置的页面上有效的路径非常重要。
答案 1 :(得分:2)
您可以查看这两个问题的答案,以了解如何生成有效的RFC 822 date time值。
为了创建一个在浏览器关闭后过期的cookie,只需创建一个没有过期日期的cookie。这将生成一个会话cookie,一旦浏览器会话到期,它将过期。