首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >有没有简单的方法让flask中的会话超时?

有没有简单的方法让flask中的会话超时?
EN

Stack Overflow用户
提问于 2012-08-03 01:49:19
回答 2查看 92.8K关注 0票数 94

我正在建立一个与烧瓶,其中用户有帐户,并能够登录的网站。我使用flask-principal进行部分日志记录和角色管理。有没有办法让用户的会话在5分钟或10分钟后过期?我在flask文档或flask-principal的文档中找不到它。

我想到了一种手动完成的方法,在登录时设置一个带有时间标签的变量服务器端,在用户下一次执行操作时,服务器验证该时间戳上的时间增量并删除会话。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-08-03 05:01:53

关闭浏览器后,除非您有永久会话,否则flask会话将过期。您可以尝试以下操作:

代码语言:javascript
运行
复制
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天。

票数 139
EN

Stack Overflow用户

发布于 2018-04-18 13:12:00

是的,我们应该设置

代码语言:javascript
运行
复制
session.permanent = True
app.permanent_session_lifetime = timedelta(minutes=5)

但我不认为它应该设置在app.before_request,这将导致设置它们太多的时间。

permanent_session_lifetime是一个Basics Configuration,所以应该在配置应用时进行设置:

代码语言:javascript
运行
复制
 from datetime import timedelta
 app = Flask(__name__)
 app.config['SECRET_KEY'] = 'xxxxxxxxx'
 app.config['PERMANENT_SESSION_LIFETIME'] =  timedelta(minutes=5)

将为每个客户端创建独立于其他客户端的session。所以,我认为设置session.permanent最好的地方是当你login()的时候

代码语言:javascript
运行
复制
@app.route('/login', methods=['GET', 'POST'])
def login():
    #After Verify the validity of username and password
    session.permanent = True
票数 39
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11783025

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档