默认情况下,Flask使用volatile会话,这意味着会话cookie设置为在浏览器关闭时过期.为了使用永久会话,这将使用具有已定义的到期日期的cookie,应该设置session.permanent = True
,如本问题中所述.,将根据以下内容设置到期日期config['PERMANENT_SESSION_LIFETIME']
.
我很惊讶会话生存期在配置文件中定义,但是无法通过配置请求使用永久会话,例如a config['USE_PERMANENT_SESSION'] = True
.但就是这样吧.
我的问题是:如果你确实想要永久性会议,那么定义它们的最佳位置是什么?它是否@app.before_request
在上述问题中提出的功能中?但是这意味着每次请求都会重新设置它?似乎一旦确定,session.permanent
直到会议结束时仍然如此.
永久会话通常在登录后使用,因此请求处理时最好的地方是处理login_user()
?那么对所有匿名页面使用易失性会话cookie的最佳策略是什么,并通过session.permanent = True
登录切换到永久会话?
人们可能希望根据它是普通的session
cookie还是remember_me
cookie 来设置不同的生命周期.实现这一目标的最佳方法是什么?
我很惊讶没有回答这个问题.似乎应该有某种类型的配置变量SESSION_PERMANENT = True
.但不幸的是没有.正如您所说,这是最好的方法.
@app.before_request def make_session_permanent(): session.permanent = True