问题标签 [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.
flask - 在 SocketIO 事件中从 flask_security 获取 current_user 对象的问题
正如标题所说,我一直在尝试current_user
在 SocketIO 事件中引用该对象,如下所示:
该连接是在用户登录之前创建的,因此我尝试进行集成flask-session
以在用户登录后使current_user
对象保持最新状态,并且我添加了一个登录后挂钩以验证用户实际上是否已登录:
这是我第一次连接到应用程序时得到的当前输出:
当前用户的None
值是预期的,因为到目前为止用户尚未登录,因此我们正在获取AnonymousUser
对象。问题是用户登录后我仍然收到一个None
值:
任何关于为什么我在成功登录后可能会得到该AnonymousUser
对象的想法将不胜感激。
python - 如何在 Flask 中共享在上下文之外创建的会话值?
如何在会话中存储由线程创建的内容,以便稍后在另一个请求中访问该值?
这是一个示例:
在上面的示例中,我将来自线程内的“状态”(我需要运行线程)存储在 /one 请求中,但稍后,比如说 5 秒,我想检查另一个请求(/two)中的状态。
@copy_current_request_context 是否也制作会话/请求的只读(或读取和丢弃写入)副本?
ios - Flask-session 在 iphone 中不起作用,因为第三方 cookie 被阻止
我的问题是我有一个包含 2 个域的网页,一个用于后端,另一个用于前端,我的后端在烧瓶中,我使用烧瓶会话模块来创建会话,它几乎在任何地方都能完美运行,但在 iphone 中却不行,在 mac 中有效但在 iphone 中无效,所以我意识到禁用“防止跨站点跟踪”会话在 iphone 中完美运行,所以我看到的问题是,由于我的前后有不同的域,它会将我的会话 cookie 转换为第三个-party coockie,它在 iphone 中被阻止,我的问题是 ¿ 有人知道解决这个问题的方法吗?我不想将我的前后放在同一个域中,或者要求用户禁用“防止跨站点跟踪”。
提前致谢
python - 如何在 Flask 中创建新会话(session.new)
session.new
我在文档中看到了描述
它说:
session.new
如果True
会话是新的,则为 False 否则。
所以我在下面的代码中尝试了两件事:
session.clear()
请求前- 设置
permanent_session_lifetime
为 1 微秒
代码:
结果是:
现在我有几个问题:
- 我该怎么
session.new
做True
? - 如果我开始一个新的会话,会
session.new
是True
? - 似乎
session.clear()
只能清除会话的内容,对吗? - 如何在 Flask 中开始新会话?
python - 关闭浏览器选项卡后如何删除烧瓶会话?
关闭后如何删除所有flask-session
数据。browser-tab
我知道会话数据在browser-window
关闭后会自动删除,但是有什么方法可以在关闭选项卡后删除会话数据。
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 字符串,包含所有列和行等。
reactjs - 如何将反应创建的 cookie 发送到烧瓶以在烧瓶会话中使用?
我的代码目前由 react 中的前端和烧瓶后端 api 组成。我正在尝试使用烧瓶会话在我的后端建立一个会话,但我做不到,因为烧瓶从不与用户联系,并且所有请求都通过前端。为此,我正在尝试将 cookie 发布到
在前端,我有类似的东西
后端:
有人知道如何将 cookie 从 react 发送到烧瓶,然后将烧瓶收到的 cookie 输入到烧瓶会话中吗?
server - Gunicorn 停止 - 如何让它活着?
我有一个在 Gunicorn 服务器上运行的 Flask 应用程序。这是我的 yaml 配置:
entrypoint: gunicorn --worker-class eventlet -w 1 main:app
问题是,我也在使用烧瓶会话,它将会话存储在服务器文件系统上。每当服务器停止/重新启动时,会话就消失了 - gunicorn 服务器似乎在几分钟后超时,并且只有在收到新请求时才会重新启动。
我尝试使用 nohup、--timeout 0、--timeout 400,但到目前为止没有任何效果..
这是日志:
有没有办法让它活着?
谢谢!
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
需要更多信息吗?
这是可以修复的吗?谢谢!
python - 如何保护烧瓶中的服务器端会话?
我面临的问题是Werkzeug 1.0.0
已删除不推荐使用的代码,包括所有这些, Werkzeug.contrib
当我使用烧瓶会话时,我得到
所以建议的解决方案是降级werkzeug to 0.16.0
我所做的。但现在的问题是
为此提供的解决方案是将werkzeug 升级到2.0 或更高版本。
我应该怎么做才能修复烧瓶会话?如何安全地存储会话?
我看到了一些替代方法 importfrom cachelib import FileSystemCache
而不是 from werkzeug.contrib.cache import FileSystemCache
insessions.py
但问题是它不加密会话文件。
我该如何解决这个问题?烧瓶会话也存在一个问题,即关闭浏览器时会话不会被清除,我app.config["SESSION_PERMANENT"] = False
在开始时特别给出了。