Flask 会话在本地持续存在,但不在 Heroku 服务器上

问题描述 投票:0回答:1

我制作了第一个 Flask 应用程序并将其部署在 Heroku 上。

但是,该会话在 Heroku 服务器上不起作用。它不断重置,有时连接,有时不连接。在那里使用它很痛苦。然而,在本地它的效果很好。完全没有问题。

链接到我的repo

这是我的会话设置(基于 CS50):

# use filesystem instead of cookies for sessions
app.config["SESSION_FILE_DIR"] =  mkdtemp()
app.config["SESSION_PERMANENT"] = False
app.config["SESSION_TYPE"] = "filesystem"
Session(app)
python flask
1个回答
0
投票

也许这来得太晚了,但我遇到了同样的问题和相同的设置(在 Flask 中使用服务器端会话并避免 cookie 存储以减轻会话劫持的风险)。在使用 wsgi 部署到 Apache 时注意到了这种行为。

发生这种情况是由于缓存策略所致(我注意到刷新网页会初始化会话)。对我有用的是使用以下设置在该虚拟主机的 .conf 文件中设置标头:

Header set pragma "no-cache"
Header set Expires "0"

此后,会话就像在本地一样正常运行。

希望有人觉得这很有用。 ✌🏼

© www.soinside.com 2019 - 2024. All rights reserved.