我正在 Build 一个带烧瓶的网站,用户可以在其中登录帐户 . 我正在使用flask-principal进行部分登录和角色管理 . 有没有办法让用户的会话在说5分钟或10分钟后过期?我无法在烧瓶文档或flask-principal的文档中找到它 .
我想到了一种手工操作的方法,在登录时设置带有时间标记的变量服务器端,在用户采取的下一个操作中,服务器验证该时间戳上的时间增量并删除会话 .
除非您有永久会话,否则在关闭浏览器后,会话会话到期 . 您可以尝试以下方法:
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)
默认情况下,在Flask中,permanent_session_lifetime设置为31天 .
是的,我们应该设定
session.permanent = True app.permanent_session_lifetime = timedelta(minutes=5)
但我不认为它应该设置在 app.before_request ,这将导致他们也可能设置它们 .
permanent_session_lifetime 是Basics Configuration,因此应该在配置应用时设置:
from datetime import timedelta app = Flask(__name__) app.config['SECRET_KEY'] = 'xxxxxxxxx' app.config['PERMANENT_SESSION_LIFETIME'] = timedelta(minutes=5)
session 将为每个客户创建,与其他客户分开 . 所以,我认为设置 session.permanent 的最佳位置是"login()":
@app.route('/login', methods=['GET', 'POST']) def login(): #After Verify the validity of username and password session.permanent = True
2 回答
除非您有永久会话,否则在关闭浏览器后,会话会话到期 . 您可以尝试以下方法:
默认情况下,在Flask中,permanent_session_lifetime设置为31天 .
是的,我们应该设定
但我不认为它应该设置在 app.before_request ,这将导致他们也可能设置它们 .
permanent_session_lifetime 是Basics Configuration,因此应该在配置应用时设置:
session 将为每个客户创建,与其他客户分开 . 所以,我认为设置 session.permanent 的最佳位置是"login()":