默认情况下,Flask 使用易失性会话,这意味着会话 cookie 设置为在浏览器关闭时过期。为了使用永久会话,它将使用具有已定义到期日期的 cookie,应该设置 session.permanent = True
,如 该问题中所述。 ,到期日期将根据 config['PERMANENT_SESSION_LIFETIME']
设置。
我很惊讶会话生命周期是在配置文件中定义的,但是不可能通过配置请求使用永久会话,例如 config['USE_PERMANENT_SESSION'] = True
。但就这样吧。
我的问题是:如果您 确实 想要永久会话,那么定义它们的最佳位置是什么?它是否在上述问题中提出的 @app.before_request
函数中?但这是否意味着在每次请求时都要重新设置它?似乎一旦设置, session.permanent
在会话结束之前一直保持为真。
永久会话通常 在登录后 使用,所以请求它们的最佳位置可能是在处理 login_user()
时?那么最好的策略是对所有匿名页面使用易失性会话 cookie,并通过在登录时执行 session.permanent = True
切换到永久会话吗?
人们可能希望根据它是普通的 session
cookie 还是 remember_me
cookie 来设置不同的生命周期。实现这一目标的最佳方法是什么?
原文由 patb 发布,翻译遵循 CC BY-SA 4.0 许可协议
我很惊讶没有回答这个问题。似乎应该有某种类型的配置变量
SESSION_PERMANENT = True
。但不幸的是没有。正如您提到的,这是最好的方法。