我对与 Flask 会话(以下简称“会话”)相关的 cookie 感到困惑。我确实了解会话如何依赖客户端 cookie。我的问题是,当我们创建/更改/弹出会话变量的值时,是否会在用户浏览器上自动创建/设置 cookie,或者我是否还需要显式管理 cookie 来与该会话变量一起使用?
session.permanent = True
session["t_id_user"] = t_id_user
# Is the following code needed?
C = make_response("")
cookie_expires = datetime.now() + timedelta(days=30)
C.set_cookie("t_id_user", str(t_id_user), expires=cookie_expires)
谢谢你!
如果您使用内置的默认 Flask 会话实现,则对
Session
对象的任何修改都会自动在进行更改的请求的响应中生成 Set-Cookie 标头。所以,你只需要这段代码:
其余的都是自动为您处理的。事实上更安全。如果您设置
SECRET_KEY
,会话 cookie 将被签名(而不是加密),这样它就不会在服务器环境之外被篡改。