0

所以我正在使用烧瓶会话。我正在使用文件系统类型,以便可以存储比其他方式更多的会话数据。我的用户希望长时间保持会话超时,并且该站点使用最少的服务器存储,所以这很好。但是,当我尝试将超时会话设置为 24 小时以下时,它仍然会在 30 分钟后超时。

application = Flask(__name__)
SECRET_KEY = os.urandom(32)
application.config['SESSION_PERMANENT'] = True
application.config['SESSION_TYPE'] = 'filesystem'
application.config['PERMANENT_SESSION_LIFETIME'] = timedelta(hours = 24)

application.config['SECRET_KEY'] = SECRET_KEY

Session(application)



@application.before_request
def make_session_permanent():
    session.permanent = True
    application.permanent_session_lifetime = timedelta(hours = 24)




我在这里做错了什么?

4

2 回答 2

1

我相信我已经找到了问题所在: SECRET_KEY = os.urandom(32)。每次重新启动应用程序(重新加载浏览器中的空闲窗口)时,会话数据都会被删除,因为生成了新的密钥,这意味着浏览器无法找到所需的 cookie。我在外部生成了一个密钥,然后将此值硬编码到我的代码中,因此每次都相同。

于 2019-11-21T18:44:10.137 回答
0

我会将 session.permanent =true 的行更改为 session.modified = True ,然后看看它是否有效。

于 2019-11-19T19:28:04.820 回答