我正在用烧瓶建立一个网站,用户拥有帐户并能够登录。我正在使用烧瓶主体进行部分登录和角色管理。有没有办法让用户的会话在 5 分钟或 10 分钟后过期?我无法在烧瓶文档或烧瓶主体的文档中找到它。
我想到了一种手动操作的方法,在登录时设置一个带有时间标签的变量服务器端,在用户采取的下一个操作时,服务器验证该时间戳上的时间增量并删除会话。
一旦你关闭浏览器,烧瓶会话就会过期,除非你有一个永久会话。您可以尝试以下方法:
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