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