使用pyramid_beaker无法妥善管理数据会话

时间:2018-04-05 15:04:07

标签: python session cookies pyramid beaker

我有以下代码,我正在使用pyramid_beaker + gunicorn + pyramid_jinja2。

我注意到,当用户登录时,如果我快速反复执行“GET”到“http://my_server_ip_adress/addClientPersonne”,我多次拒绝权限,就像登录用户没有“add_client”一样许可是不正常的。在进行“打印会话”时,我可以看到有时会话具有允许用户访问上面的链接的所有身份验证信息,但是另一次没有,并且访问被拒绝...也许我关于pyramid_beaker的配置不好?有什么建议吗?

感谢。

compare_exchange_weak

2 个答案:

答案 0 :(得分:0)

如果你将gunicorn配置为fork,那么你就不能使用内存中的会话存储,因为它不会在进程间共享。您可以通过关闭gunicorn中的分叉或切换到没有分叉的女服务员等wsgi服务器来确认这是问题。

答案 1 :(得分:0)

问题在于军人多名工人。如果使用单个工作程序运行此代码,它将运行良好。中的用户会话已在该工作人员的内存中,其他工作人员将无法访问。

因此,当您登录时,用户详细信息将仅与该工作人员一起使用,并且在单击下一个GET调用时,请求将转到另一个工作人员,在那里该工作人员将不会获得用户详细信息,并且将拒绝您的请求。