我正在 Flask 中开发一个 Web 应用程序,我正在尝试设置一个 3 天后过期的 cookie。这是我的代码:
@app.route('/start')
def setcookie():
expire_date = datetime.datetime.now() + datetime.timedelta(days=3)
resp = make_response(render_template('start.html'))
resp.set_cookie('mycookie',id_generator(6),max_age=expire_date,expires=expire_date)
return resp
尽管如此,当我在 Chrome 中检查 cookie 时,我看到 Expires/Max-age = Session
id_generator 是一个自定义函数,生成 6 小时字母数字跟踪 ID。我设置了 max_age 和过期时间,因为两者都不起作用,所以我正在尝试两者:-)
如何在浏览器应用程序中为 Cookie 设置自定义到期日期或最长期限?
似乎您准备的日期时间expire_date与
max_age
参数不兼容。 文档的片段:
max_age (timedelta | int | None) – 应该是秒数,如果 cookie 的持续时间与客户端的浏览器会话一样长,则应为 None(默认)。
expires (str | datetime | int | float | None) – 应该是日期时间对象或 UNIX 时间戳。
如果您使用以下两个选项之一,您将获得所需的结果:
A.将
expires
设置为日期时间对象:
def setcookie():
expire_date = datetime.datetime.now() + datetime.timedelta(days=30)
resp = make_response(render_template('home.html'))
resp.set_cookie('mycookie','somevaluehere',expires=expire_date)
return resp
B.将
max_age
设置为整数:
def setcookie():
resp = make_response(render_template('home.html'))
resp.set_cookie('mycookie','somevaluehere',max_age=1234567)
return resp