有一个简单的方法,使会话超时在瓶中?(Is there an easy way to make se

2019-06-17 15:25发布

我在建设有烧瓶内的网站,用户有账户,并且能够登录。 我使用的瓶,主要用于部分地登录电子和角色管理。 有没有使用户的会话的方式到期说5分钟或10分钟后? 我没能找到瓶文档或烧瓶校长的文档。

我认为做手工的方式,在登录时刻设置一个变量服务器端与时间标签,并在用户采取下一个动作时,服务器将验证该时间戳时间三角洲和删除会话。

Answer 1:

烧瓶会话过期,一旦你关闭浏览器,除非你有一个永久的会话。 你可能可以尝试以下方法:

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)

默认情况下,在瓶,permanent_session_lifetime设置为31天。



Answer 2:

是的,我们应该设置

session.permanent = True
app.permanent_session_lifetime = timedelta(minutes=5)

但我不认为它应该被设定在app.before_request ,这将导致设置它们也可能倍。

permanent_session_lifetime是基础配置 ,因此在配置应用程序应该设置:

 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


文章来源: Is there an easy way to make sessions timeout in flask?