问题标签 [flask-session]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
71 浏览

flask - 在 SocketIO 事件中从 flask_security 获取 current_user 对象的问题

正如标题所说,我一直在尝试current_user在 SocketIO 事件中引用该对象,如下所示:

该连接是在用户登录之前创建的,因此我尝试进行集成flask-session以在用户登录后使current_user对象保持最新状态,并且我添加了一个登录后挂钩以验证用户实际上是否已登录:

这是我第一次连接到应用程序时得到的当前输出:

当前用户的None值是预期的,因为到目前为止用户尚未登录,因此我们正在获取AnonymousUser对象。问题是用户登录后我仍然收到一个None值:

任何关于为什么我在成功登录后可能会得到该AnonymousUser对象的想法将不胜感激。

0 投票
2 回答
110 浏览

python - 如何在 Flask 中共享在上下文之外创建的会话值?

如何在会话中存储由线程创建的内容,以便稍后在另一个请求中访问该值?

这是一个示例:

在上面的示例中,我将来自线程内的“状态”(我需要运行线程)存储在 /one 请求中,但稍后,比如说 5 秒,我想检查另一个请求(/two)中的状态。

@copy_current_request_context 是否也制作会话/请求的只读(或读取和丢弃写入)副本?

0 投票
0 回答
123 浏览

ios - Flask-session 在 iphone 中不起作用,因为第三方 cookie 被阻止

我的问题是我有一个包含 2 个域的网页,一个用于后端,另一个用于前端,我的后端在烧瓶中,我使用烧瓶会话模块来创建会话,它几乎在任何地方都能完美运行,但在 iphone 中却不行,在 mac 中有效但在 iphone 中无效,所以我意识到禁用“防止跨站点跟踪”会话在 iphone 中完美运行,所以我看到的问题是,由于我的前后有不同的域,它会将我的会话 cookie 转换为第三个-party coockie,它在 iphone 中被阻止,我的问题是 ¿ 有人知道解决这个问题的方法吗?我不想将我的前后放在同一个域中,或者要求用户禁用“防止跨站点跟踪”。

提前致谢

0 投票
1 回答
191 浏览

python - 如何在 Flask 中创建新会话(session.new)

session.new我在文档中看到了描述

它说: session.new如果True会话是新的,则为 False 否则。

所以我在下面的代码中尝试了两件事:

  1. session.clear()请求前
  2. 设置permanent_session_lifetime为 1 微秒

代码:

结果是:

现在我有几个问题:

  • 我该怎么session.newTrue
  • 如果我开始一个新的会话,会session.newTrue
  • 似乎session.clear()只能清除会话的内容,对吗?
  • 如何在 Flask 中开始新会话?
0 投票
0 回答
126 浏览

python - 关闭浏览器选项卡后如何删除烧瓶会话?

关闭后如何删除所有flask-session数据。browser-tab

我知道会话数据在browser-window关闭后会自动删除,但是有什么方法可以在关闭选项卡后删除会话数据。

0 投票
0 回答
138 浏览

python - Flask 会话:文件系统的 OSError:[Errno 36] 文件名太长

我有一个烧瓶应用程序,它接收用户/投资组合 id 表单,然后创建一个显示用户数据、信息、图表等的页面。我正在尝试为每个用户投资组合/工具插入一个下载 CSV 数据链接/按钮.

我正在通过烧瓶会议来做到这一点。由于 CSV 数据超过了 cookie 限制,我需要使用特殊会话。直到现在我尝试使用 Redis 都没有成功(但它可能是一个选项),所以我正在使用文件系统 Flask 会话,它给出了错误OSError: [Errno 36] File name too long

这是我的代码的简化:

应用程序.py

因此,在我的 data_display_page.html 模板页面中,我有以下代码,它创建了下载链接:

data_display_page.html

当我运行 docker-compose 时,一切运行良好,但是当我单击下载加载链接并被重定向时,我在浏览器和控制台上收到内部服务器错误,我得到以下信息:

cmd:码头工人撰写错误

不知何故,它认为文件名是整个 CSV 字符串,包含所有列和行等。

0 投票
0 回答
220 浏览

reactjs - 如何将反应创建的 cookie 发送到烧瓶以在烧瓶会话中使用?

我的代码目前由 react 中的前端和烧瓶后端 api 组成。我正在尝试使用烧瓶会话在我的后端建立一个会话,但我做不到,因为烧瓶从不与用户联系,并且所有请求都通过前端。为此,我正在尝试将 cookie 发布到

在前端,我有类似的东西

后端:

有人知道如何将 cookie 从 react 发送到烧瓶,然后将烧瓶收到的 cookie 输入到烧瓶会话中吗?

0 投票
0 回答
39 浏览

server - Gunicorn 停止 - 如何让它活着?

我有一个在 Gunicorn 服务器上运行的 Flask 应用程序。这是我的 yaml 配置: entrypoint: gunicorn --worker-class eventlet -w 1 main:app

问题是,我也在使用烧瓶会话,它将会话存储在服务器文件系统上。每当服务器停止/重新启动时,会话就消失了 - gunicorn 服务器似乎在几分钟后超时,并且只有在收到新请求时才会重新启动。

我尝试使用 nohup、--timeout 0、--timeout 400,但到目前为止没有任何效果..

这是日志:

有没有办法让它活着?

谢谢!

0 投票
1 回答
294 浏览

python - Flask-Session cookie 适用于 IP 地址和域的其他浏览器,但对于 chrome,它仅适用于 IP 地址

我发现了一个同样问题的问题,除了它已经 7 岁了,而且他们有相反的问题,chrome 为他们的域工作,但不是 IP。我需要这个应用程序在域上工作,而不是在 ip 上工作,这很不幸。如果我有一些像这样的基本代码:Flask:

反应:

在 ip='12.34.56.78' 和域 'example.com' 的服务器上:在 safari 上使用域或 ip 时,输出为

'那里'

对彼此而言

但是,在 chrome 上,对于 ip,输出是

'那里'

但是,对于域,输出是

关键错误

编辑:更多信息:这是在 AWS ec2 ubuntu 服务器上,该服务器在前端的 80 端口和后端的 5000 端口上运行。我使用 AWS Route 53 将 IP 地址连接到域名......以防万一。要访问前端,可以去ip或域名,而要访问后端,必须去ip:5000

需要更多信息吗?

这是可以修复的吗?谢谢!

0 投票
2 回答
445 浏览

python - 如何保护烧瓶中的服务器端会话?

我面临的问题是Werkzeug 1.0.0已删除不推荐使用的代码,包括所有这些, Werkzeug.contrib当我使用烧瓶会话时,我得到

所以建议的解决方案是降级werkzeug to 0.16.0我所做的。但现在的问题是

为此提供的解决方案是将werkzeug 升级到2.0 或更高版本。

我应该怎么做才能修复烧瓶会话?如何安全地存储会话?

我看到了一些替代方法 importfrom cachelib import FileSystemCache而不是 from werkzeug.contrib.cache import FileSystemCacheinsessions.py但问题是它不加密会话文件。

我该如何解决这个问题?烧瓶会话也存在一个问题,即关闭浏览器时会话不会被清除,我app.config["SESSION_PERMANENT"] = False在开始时特别给出了。