有基本上是两个问题,我想解决:初始化到服务器Python的插座服务器通过使用客户端做验证令牌
服务器端连接时
客户端发送的查询字符串在握手中验证用户令牌(不是在连接建立之后,然后验证包含令牌的流消息)并相应地设置用户会话。
我读了文章(https://auth0.com/blog/2014/01/15/auth-with-socket-io/)谈到有关此过程中实现的NodeJS,只是想知道同样的功能可以通过使用python来实现。 (目前我正在做一些关于扭曲的研究,但还没有发现任何类似的东西)
PS:猜测它有助于演示用例。用户可以通过正常的http登录到你的服务器,然后服务器将向他/她发出一个有效的accessToken。那么这个用户可能需要与服务器(或其他服务器)建立套接字连接,然后服务器需要在建立套接字连接之前找出用户是谁并验证。
感谢您在这里解决关键问题,直到现在我还没有意识到WebSocket和Socket之间的区别。因此,对于这种用例,除了在建立套接字之后进行用户令牌认证之外,还有其他方式通过套接字通信来认证用户吗? – Yang 2014-09-25 22:08:55
@杨:理论上你可以尝试基于来自同一个源地址进行身份验证......但我认为你链接的文章解释了为什么这是一个坏主意。你也可以在UDP之上构建你自己的类TCP流,并将令牌部分作为流连接协商的一部分(例如参见SIP,WebRTC,RTMFP等),但这对于一个漂亮的工作来说是相当大的工作量如果你的目标只是“我想要的是TCP所做的,除非我想避免没有令牌的连接建立的成本”。你真的想在这里解决什么真正的问题? – abarnert 2014-09-25 22:54:51
我试图编写一个与主服务器分开的游戏服务器(称之为认证服务器或其他),因为用户登录MS并且MS会存储会话(在某些缓存中像redis)并返回用户acessToken。然后,当用户实际连接到游戏服务器时,我希望使用与此游戏服务器的身份验证机制相同的标记来验证用户并知道他/她是谁。 – Yang 2014-09-25 23:28:13