我制作了第一个 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)
也许这来得太晚了,但我遇到了同样的问题和相同的设置(在 Flask 中使用服务器端会话并避免 cookie 存储以减轻会话劫持的风险)。在使用 wsgi 部署到 Apache 时注意到了这种行为。
发生这种情况是由于缓存策略所致(我注意到刷新网页会初始化会话)。对我有用的是使用以下设置在该虚拟主机的 .conf 文件中设置标头:
Header set pragma "no-cache"
Header set Expires "0"
此后,会话就像在本地一样正常运行。
希望有人觉得这很有用。 ✌🏼