小编Cap*_*ell的帖子

在不注销用户的情况下重新生成所有烧瓶会话

基本上我想要做的是使用一组新的密钥重新生成每个会话,而无需用户再次登录.我怎样才能做到这一点?

编辑清楚

因此,假设我们使用redis作为会话的后端并在客户端保留它的cookie.Cookie只包含会话ID.此会话ID对应于redis上的会话.在我们通过在我们的应用程序中编写Session(APP)来初始化Session之后,对于每个请求上下文,我们可以通过以下方式获取当前用户的会话

from flask import session 
Run Code Online (Sandbox Code Playgroud)

管理员更改了应用程序的一些常规设置后,我愿意重新生成每个当前用户的会话,只需再次为当前用户查看

from flask import session
Run Code Online (Sandbox Code Playgroud)

这是据我所知.

例如,假设用户会话的值确定为

session['arbitrary_key'] = not_important_database_function()
Run Code Online (Sandbox Code Playgroud)

管理员在应用程序中更改了一些内容后,我需要在当前用户的会话中重新加载密钥

session['arbitrary_key'] = not_important_database_function()
Run Code Online (Sandbox Code Playgroud)

因为在更改管理员之后,它将产生不同的值.在那之后,我正在改变session.modified.我想学的是如何更改arbitrary_key每个用户的开启会话.因为我缺乏有关如何获取每个会话并从烧瓶中更改它们的信息.

如果我从redis删除会话,则需要用户重新进行身份验证.我不希望他们重新认证.我只是希望更改后端会话,因为我在用户会话中使用了一些需要从redis获取的信息,因此我不必not_important_database_function为每个请求调用 .

我希望这是足够的信息,你至少不回答,但也不是downvote所以我可以继续为我的问题寻求解决方案.

我不是在分享代码片段,因为在我看来,没有代码片段对案例有帮助.

python session flask

7
推荐指数
1
解决办法
361
查看次数

标签 统计

flask ×1

python ×1

session ×1