默认情况下,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登录切换到永久会话?
人们可能希望根据它是普通的sessioncookie还是remember_mecookie 来设置不同的生命周期.实现这一目标的最佳方法是什么?
我正在使用Python Web框架Flask.我在我的应用中使用会话.对于我的应用程序调用main,我已经获得了设置main.permanent_session_lifetime = timedelta(days=5),因此用户将在登录后保持登录状态5天.但即使是活跃用户也将在5天后注销.我希望每次访问网站时都会重置过期时间,因此只有在5天不活动后才能注销.大多数网站以这种方式工作 我如何使用Flask做到这一点?
我正在构建一个 Flask 网站,它是研究实验的一部分。我需要能够记住匿名用户,这样我网站的每个访问者都将是匿名且独一无二的,但也会被记住,这样他们就无法再次进入该网站(他们将重定向到“感谢您的参与”页面) .
我该怎么做?我查看了flask.session(如何生成唯一的匿名ID并将其保存到用户cookie?)和Flask-login(必须与用户登录才能获取ID)但没有找到这个问题的具体解决方案。
请帮忙。
flask_login.login_user(user, remember=False, duration=None, force=False, fresh=True)
Run Code Online (Sandbox Code Playgroud)
要login_user在Flask-Login。它使“在会话过期后记住用户”成为可能。
然而只有 Flask(而不是 Flask-Login)
'PERMANENT_SESSION_LIFETIME': datetime.timedelta(31)
Run Code Online (Sandbox Code Playgroud)
中默认设置为 31 天default_config(并且可以适当修改)。也session.permanent可以设置使会话永久,
也许通过:
from datetime import timedelta
from flask import session, app
@app.before_request
def make_session_permanent():
session.permanent = True
app.permanent_session_lifetime = timedelta(minutes=5)
Run Code Online (Sandbox Code Playgroud)
Flask-Login 是否remember_me会覆盖 Flask 的permanent?他们如何互动?
我正在尝试使用 cookie 来记住访问者是否已经在我的网站上看过特定的教程页面。该站点是使用 Flask 构建的。
教程页面是从烧瓶路由加载的,所以我认为尝试使用烧瓶框架中的 make_response 和 response.set_cookie 函数更改烧瓶路由定义中的 cookie 是有意义的。
但是,此(会话)cookie 仅在会话期间有效。我找不到有关使用烧瓶设置永久/持久 cookie 的任何信息。我怎么能用烧瓶做到这一点?
谢谢!