我一直在尝试学习Flask,以及Flask-Login扩展。我可以使基本身份验证按预期工作。困扰我的问题涉及Firefox中的“显示上次的窗口和标签页”设置以及Chrome中的“从上次离开时继续”设置。我在这个网站和其他地方所做的所有研究都表明,这些设置只适用于打开的标签页。因此,如果您进行了身份验证,然后关闭了选项卡,然后关闭了浏览器,则浏览器应仅恢复在浏览器关闭时打开的选项卡的会话cookie。但是,在Firefox和Chrome上,当重新启动浏览器并导航到标记为@login_required的页面时,会话cookie仍然处于活动状态。我还应该提到,我将False传递给login_user remember参数,如下所示:
我发现了如何使登录在给定时间后过期的方法,使用
我可以接受Firefox/Chrome会记住打开的标签页的会话cookie,但我不明白为什么它们会在选项卡关闭之前记住我的站点的会话cookie。这是预期的行为吗?当我先关闭选项卡,然后再关闭浏览器时,是否合理期望会话cookie被删除?
login_user(user, remember=False)
我尝试使用Flask-Login扩展的新登录想法,认为在关闭浏览器之前关闭选项卡肯定会将会话标记为过时,但是没有成功。我检查了login_fresh()
的值,如果登录是新鲜的,则返回true,它仍然返回True。我发现了如何使登录在给定时间后过期的方法,使用
session.permanent = True
,然后设置app.permanent_session_lifetime = 'so many minutes/seconds'
,这完美地起作用,但这不是我想要的。我可以接受Firefox/Chrome会记住打开的标签页的会话cookie,但我不明白为什么它们会在选项卡关闭之前记住我的站点的会话cookie。这是预期的行为吗?当我先关闭选项卡,然后再关闭浏览器时,是否合理期望会话cookie被删除?