问题标签 [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 投票
1 回答
2827 浏览

python - 烧瓶用户会话

在对用户进行身份验证后,我无法让用户在浏览我建立的网站时保持登录状态。我尝试过使用 cookie 和会话,但我似乎无法让它工作。

我正在共享我的登录代码,我在其中获取数据以从注册时填充的 Excel 表中对用户进行身份验证

我找到每个团队成员的名字,让他们出现在团队页面上,这是用户在登录后被重定向到的地方

这是用户身份验证的用武之地

这就是我写cookie的方式,但我认为Session可能更有用

团队页面代码

HTML 用户参考

0 投票
2 回答
3919 浏览

python - 在请求上下文之外设置烧瓶会话变量(在生成器内)

我有一个烧瓶视图,执行该视图以在生成器中加载一些信息(我正在使用生成器,以便我可以连续产生进度 - 加载了多少信息)。这是视图的样子:

我想存储在生成器内的会话变量中加载的信息(此生成器函数在请求上下文之外的不同文件中定义)。但是当我尝试访问会话变量时,出现以下错误:

RuntimeError:在请求上下文之外工作。

那么,有没有办法以这种方式将信息写入会话?我现在正在使用 FileSystemSessionInterface,但如果这能解决我的问题,我愿意使用 redis 会话。

更新:

根据 Sraw 的建议,我尝试了以下更改:

但我仍然得到同样的错误。

更新 2:

所以,我需要使用实际的应用程序实例而不是使用 current_app (应用程序对象是在不同的文件 - app.py 中创建的)

在这样做时,我得到了同样的错误:

RuntimeError:在请求上下文之外工作。

更新 3:

以下是 get_user_saved_tracks 的代码:

0 投票
2 回答
929 浏览

python - 如何设置全局密钥来处理烧瓶中的会话

我有一个带有多个蓝图名称的烧瓶应用程序,因为我在身份验证蓝图auth,admin,user 中有一个密钥。view.py

如何将此作为全局键,以便我可以在应用程序的任何地方使用它

secret_key = 'A0Zr98j/3yX R~XHH!jmN]LWX/,?RT'在 run.py 文件中设置。但不工作

0 投票
0 回答
89 浏览

authentication - 用户通过 flask_login 获得进入权限

我的网站有问题,该网站是使用 python、flask、gunicorn + supervisorctl、nginx 堆栈构建的。

问题是:如果我在对其进行一些更新后通过“sudo supervisorctl reload”重新启动我的网站后以用户身份登录(例如管理员),则任何尝试登录的用户都会以管理员身份登录,即使他们输入一个随机的用户名和密码组合,显然这是非常惊人的。

我目前正在使用 flask_login 插件来处理登录,但我怀疑这与烧瓶会话及其交互方式有关。

我的登录代码如下

我还使用烧瓶会话来识别当前语言和管理翻译

在主路由中:

在我的初始化中

我不确定从哪里开始确定问题所在,目前它有点超出我的范围。我看到的最近的事情是这样的:

用户似乎以其他用户身份登录

但在我的情况下,计算机上似乎也发生了同样的事情,所以并不是真正的 VPN 问题,我不确定相同的解决方案是否可行。

感谢您的帮助!

0 投票
0 回答
152 浏览

python - 防止烧瓶会话在 ajax 调用时重新加载

所以,我试图让烧瓶会话在一定时间后过期。

验证用户登录后,我设置session.permanent = True

在我的配置中,我有

并在我的全球之前请求:

如果用户登录我的网站然后关闭选项卡,一分钟后会话过期,则此方法有效。但是,我有一个 AJAX 请求,它在所有页面的后台不断运行。如果用户在此页面中的任何一个中,则会话永远不会过期。

如何防止这种行为?

0 投票
1 回答
198 浏览

flask - Flask:清除来自管理员的会话

在我的烧瓶应用程序中,注销可以清除会话。

但是只有当用户在我的网站上单击注销时才会调用注销。

我正在实现一个可以阻止神秘用户的功能。所以,我需要在未经他同意的情况下强制注销用户。如果我可以清除他的会话,我的逻辑也会起作用。请指导。

注意:有人建议更改 app.secret_key。但这将清除所有用户的会话,而不仅仅是特定用户。

0 投票
1 回答
2872 浏览

python - Flask 会话不会与并行请求一致地更新

我注意到当并行运行的请求修改 Flask 时session,只记录了一些键。Flask 的默认 cookie 会话和使用 Redis 后端的 Flask-Session 都会发生这种情况。该项目并不新鲜,但只有在同一会话同时发生许多请求时,这才变得引人注目。

以下 shell 脚本演示了该问题。请注意,所有请求都已完成,但最终清单中仅存在一个键,并且在测试运行之间有所不同。

为什么请求完成后所有键都不存在?

0 投票
2 回答
1295 浏览

python - Flask-Session 无法从 itsdangerous 中导入 want_bytes

我正在使用 Flask-Session,最近安装或升级到了危险的 1.0.0。现在我得到了错误ImportError: cannot import name 'want_bytes'。为什么会发生此错误,我该如何解决?

我对此感到困惑,并且无法在 stackoverflow 或任何地方找到适用或有用的答案。

0 投票
1 回答
3607 浏览

python - from flask_session import Session 产生 ImportError: cannot import name want_bytes

我正在尝试将 flask_session 用于基于 redis 的会话并收到以下错误:

使用以下

产生错误:

0 投票
0 回答
195 浏览

python - 烧瓶请求上下文和芹菜

所以,我正在开发一个多租户 Flask 应用程序。我目前正在使用 sqlalchemy 和多模式模式。要定义当前模式,我使用此函数:

当我有请求上下文时它工作得很好,但是当芹菜任务尝试使用连接时,我收到一个错误,说我不在请求上下文中工作。

有没有办法在 celery 任务中访问会话,或者以不同的方式与我的连接事件共享租户?