Python flask socketio授权标头处理

Python flask socketio授权标头处理,python,flask-socketio,python-socketio,Python,Flask Socketio,Python Socketio,我正在使用第三方身份验证服务以及on_connect方法上的一个防护来处理针对套接字连接的用户身份验证。这正如我所希望的那样起作用,但我注意到了一些我不确定如何解决的问题 首先,处理过期或过期令牌的建议工作流程是什么?我目前看到的问题是,我不知道如何在不使用新令牌断开和重新连接的情况下,用新令牌替换连接事件期间引入的令牌 另一件事是,为什么通过使用引发ConnectionRefusedError来阻止用户获得连接的用户仍然获得分配的会话id,并且没有连接失败的通知?为了测试这一点,我使用pyth

我正在使用第三方身份验证服务以及on_connect方法上的一个防护来处理针对套接字连接的用户身份验证。这正如我所希望的那样起作用,但我注意到了一些我不确定如何解决的问题

首先,处理过期或过期令牌的建议工作流程是什么?我目前看到的问题是,我不知道如何在不使用新令牌断开和重新连接的情况下,用新令牌替换连接事件期间引入的令牌


另一件事是,为什么通过使用引发ConnectionRefusedError来阻止用户获得连接的用户仍然获得分配的会话id,并且没有连接失败的通知?为了测试这一点,我使用python socketio手动创建了一个客户端,并进行了无效的连接尝试,然后打印了sid值。

对于令牌,通常仅在连接时检查令牌。如果您需要在客户端的令牌过期时中断客户端,您可以在服务器每次收到事件时添加令牌过期检查,并在令牌过期时调用
disconnect()
。连接失败的问题很奇怪。如果您使用的是最新版本的python socketio和python engineio,那么最好是在python socketio中提交一个bug,并提供一个示例来帮助我重现这个问题。谢谢@米格尔:关于你的第一句话。这正是我目前处理此事的方式。但我也希望为客户提供刷新到期代币的机会。然后让他们在其他事件断开连接之前开始使用新令牌。通过这种方式,他们不会错过在进行令牌循环时可能发生的他们应该侦听的事件。老实说,我看不出在每个事件上检查/更新令牌会带来什么额外的安全性。如果用户连接并在那时检查令牌,在我看来,在连接的中间再次检查令牌是没有意义的。只有当连接断开并且客户端重新连接时,才有意义进行重新检查。不要忘记,检查代币的目的是确保客户是他们所说的那个人。一旦你确认在连接结束前你应该没事,这是一个很好的观点。现在我正在使用第三方来管理代币。我向他们查询,以获取特定事件所需的其他信息。我只能获取有效令牌的信息;但我不必在获得connect上的信息后继续这样做。